Episode “Design Sampul”
Asalamualaikum,
Dalam pembuatan Online Messanger atau Chat ini kita akan melakukanya secara berurutan sesuai dengan konsep CRUD (Creat, Read, Update, Delete)..
Tapi dalam tutorial pertama ini kita belum akan melakukan CRUD karena kita akan memuali degan mendesign.
Sekarang kita akan membuat design awal untuk halaman index, halaman index disini nanti akan berisi form register, login dan deskripsi situs chat kita.
Di tahap ini kita akan menggunakan Bootstrap 3 dan font Awesome 4 untuk mempercantik tampilan dengan mudah..
Sekarang siapkan alat dan bahannya..
- Text editor.
- Browser.
- XAMPP atau server lain.
- JQuery. (http://code.jquery.com/jquery-1.11.1.min.js )
- Bootstrap 3. (https://github.com/twbs/bootstrap/releases/download/v3.2.0/bootstrap-3.2.0-dist.zip )
- Font Awesome 4. (http://fortawesome.github.io/Font-Awesome/assets/font-awesome-4.1.0.zip )
Langkah 1
Saya asumsikan anda sudah memasang XAMPP atau server lain..
Buka root direktori pada XAMPP folder bernama “htdocs” lalu buat sebuah folder project. Disini saya memberi contoh folder dengan nama “sms” atau saya sebut Simple Messanging System.
Selanjutnya kita buat folder “view” di dalam folder “sms”..
Lalu buat folder “bootstrap” dan “fa” didalam folder “view” sebagai wadah file dari Bootstrap 3 dan Font Awesome 4.
Lalu buat juga folder “css”, “js”, dan “images” untuk wadah file css, js, dan image yang mungkin akan kita perlukan nanti atau di tahap selanjutnya.
Hasil struktur foldernya seperti ini..
sms/
->view/
-->bootstrap/
-->css/
-->fa/
-->images/
-->js/
Langkah 2
sekarang extrak Bootstrap dan Font Awesome kedalam foldernya masing-masing yang telah kita buat tadi..
Bootstrap
Font Awesome
Dan untuk JQuery, rename jquery-1.11.1.min.js dengan jquery.min.js agar lebih simple..
lalu letakan jquery.min.js yang sudah di download di folder view/js/..
Langkah 3
Sekarang kita akan membuat beberapa file yaitu..
- index.php
- index_header.php
- index_footer.php
- index_style.css
sms/
-index.php
-index_header.php
-index_footer.php
->view/
-->css/
---index_style.css
Langkah 4
Sekarang kita akan melakukan Coding untuk index_header.php dan index_footer.php sebagai struktur dasar..
Buka index_header.php dengan text editor..
Pastekan kode berikut, fungsi dari code sudah ada dalam komentar code..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <!DOCTYPE html> <html lang= "id" > <head> <meta charset= "utf-8" > <meta http-equiv= "X-UA-Compatible" content= "IE=edge" > <!-- view port, melihat ukuran layar device --> <meta name= "viewport" content= "width=device-width, initial-scale=1" > <!-- Judul --> <title>Simple Messanging System</title> <!-- Bootstrap --> <link href= "view/bootstrap/css/bootstrap.min.css" rel= "stylesheet" > <!-- Font Awesome --> <link href= "view/fa/css/font-awesome.min.css" rel= "stylesheet" > <!-- CSS anda --> <link href= "view/css/index_style.css" rel= "stylesheet" > </head> <body> |
Buka index_footer.php dengan text editor..
Pastekan kode berikut, fungsi dari code sudah ada dalam komentar code..
1
2
3
4
5
6
| <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src= "view/js/jquery.min.js" ></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src= "view/bootstrap/js/bootstrap.min.js" ></script> </body> </html> |
Kenapa harus memotong kepala dan kaki index? Agar kelak jika kita membutuhkan kode yang sama kita tinggal mengincludekan potongang code itu...
Langkah 5
kita akan mulai mendesign,
saya akan membuat layout dengan tiga bagian yaitu untuk deskripsi, sign-in, dan sign-up..
Pastekan code berikut pada index.php, fungsi dari code sudah ada dalam komentar code..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| <?php //Memasukan File header include_once 'index_header.php' ; ?> <div class = "container-fluid" style= "margin-top: 10%" > <div class = "row" > <div class = "col-md-4 col-md-offset-3" > <!-- Deskripsi --> <div class = "panel panel-default" > <div class = "panel-heading" > <h1 class = "panel-title" ><i class = "fa fa-3x fa-comments-o text-success" ></i> Simple Messanging System [SMS]</h1> </div> <div class = "panel-body" > Description </div> </div> </div> <div class = "col-md-3" > <!-- Form Sign-in/Login/Masuk --> <div class = "panel panel-default" > <div class = "panel-heading" > <h3 class = "panel-title" ><i class = "fa fa-2x fa-unlock-alt text-success" ></i> Sign-In</h3> </div> <div class = "panel-body" > Form </div> </div> <!-- Form Sign-up/Daftar --> <div class = "panel panel-default" > <div class = "panel-heading" > <h3 class = "panel-title" ><i class = "fa fa-2x fa-paper-plane-o text-success" ></i> Sign-Up</h3> </div> <div class = "panel-body" > Form </div> </div> </div> </div> </div> <?php //memasukan file footer include_once 'index_footer.php' ; ?> |
Langkah 6
Sekarang kita coba menampikan file yang kita design yang kita buat tadi..
Caranya, pastikan Apache pada XAMPP sudah Run..
Buka browser lalu kita ketikan alamat web kita pada address bar,
Disini saya menggunakan “localhost/sms”..
Jika berhasil akan tampil..
Tapi saya tidak terlalu suka dengan background bodynya yang berwarna putih..
Saya akan ganti dengan warna hijau..
Caranya, buka file index_style.css yang telah dibuat di langkah 3 tadi, lalu edit background body dengan code ini..
1
| body{ background : #88C425 } |
kemudian Refresh browser, jika berhasil akan seperti ini..
Langkah 7
Sekarang kita akan membuat form untuk Sign-in.
Kita akan membuat 3 componen input yaitu:
- input text username
- input text password
- button submit sign-in
Buka index.php, cari komentar <!-- Form Sign-in/Login/Masuk -->.
Ganti tulisan “Form” di bawah komentar code dengan code berikut.
1
2
3
4
5
6
7
8
9
10
11
| <form action= "" method= "post" > <div class = "form-group" > <label for = "in-username" >Username</label> <input id= "in-username" type= "text" name= "in-username" class = "form-control" maxlength= "15" > </div> <div class = "form-group" > <label for = "in-password" >Password</label> <input id= "in-password" type= "password" name= "in-password" class = "form-control" > </div> <button type= "submit" name= "sign-in" value= "go" class = "btn btn-success pull-right" ><i class = "fa fa-unlock" ></i> OK</button> </form> |
Langkah 8
Sekarang kita akan membuat form untuk Sign-up.
Kita akan membuat 6 componen input yaitu:
- input text username
- input text nama
- input text email
- input text password1
- input text password2
- button submit sign-up
Buka index.php, cari komentar <!-- Form Sign-up/Daftar -->.
Ganti tulisan “Form” di bawah komentar code dengan code berikut.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <form action= "" method= "post" > <div class = "form-group" > <label for = "up-username" >Username</label> <input id= "up-username" type= "text" name= "up-username" class = "form-control" maxlength= "15" > </div> <div class = "form-group" > <label for = "up-name" >Nama Lengkap</label> <input id= "up-name" type= "text" name= "up-name" class = "form-control" maxlength= "50" > </div> <div class = "form-group" > <label for = "up-email" >Email</label> <input id= "up-email" type= "email" name= "up-email" class = "form-control" maxlength= "70" > </div> <div class = "form-group" > <label for = "up-password1" >Password</label> <input id= "up-password1" type= "password" name= "up-password1" class = "form-control" > </div> <div class = "form-group" > <label for = "up-password2" >Ulangi Password</label> <input id= "up-password2" type= "password" name= "up-password2" class = "form-control" > </div> <button type= "submit" name= "sign-up" value= "go" class = "btn btn-success pull-right" ><i class = "fa fa-send" ></i> Send Data</button> </form> |
Ini adalah full code dari index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
| <?php //Memasukan File header include_once 'index_header.php' ; ?> <div class = "container-fluid" style= "margin-top: 5%" > <div class = "row" > <div class = "col-md-5 col-md-offset-2" > <!-- Deskripsi --> <div class = "panel panel-default" > <div class = "panel-heading" > <h1 class = "panel-title" ><i class = "fa fa-3x fa-comments-o text-success" ></i> Simple Messanging System [SMS]</h1> </div> <div class = "panel-body" > <img src= "view/images/icon.png" class = "img-responsive center-block" > Membuat Simple Messanging system.. </div> </div> </div> <div class = "col-md-3" > <!-- Layout Sign-in/Login/Masuk --> <div class = "panel panel-default" > <div class = "panel-heading" > <h3 class = "panel-title" ><i class = "fa fa-2x fa-lock text-success" ></i> Sign-In</h3> </div> <div class = "panel-body" > <!-- Form Sign-in/Login/Masuk --> <form action= "" method= "post" > <div class = "form-group" > <label for = "in-username" >Username</label> <input id= "in-username" type= "text" name= "in-username" class = "form-control" maxlength= "15" > </div> <div class = "form-group" > <label for = "in-password" >Password</label> <input id= "in-password" type= "password" name= "in-password" class = "form-control" > </div> <button type= "submit" name= "sign-in" value= "go" class = "btn btn-success pull-right" ><i class = "fa fa-unlock" ></i> OK</button> </form> </div> </div> <!-- Layout Sign-up/Daftar --> <div class = "panel panel-default" > <div class = "panel-heading" > <h3 class = "panel-title" ><i class = "fa fa-2x fa-paper-plane-o text-success" ></i> Sign-Up</h3> </div> <div class = "panel-body" > <!-- Form Sign-up/Daftar --> <form action= "" method= "post" > <div class = "form-group" > <label for = "up-username" >Username</label> <input id= "up-username" type= "text" name= "up-username" class = "form-control" maxlength= "15" > </div> <div class = "form-group" > <label for = "up-name" >Nama Lengkap</label> <input id= "up-name" type= "text" name= "up-name" class = "form-control" maxlength= "50" > </div> <div class = "form-group" > <label for = "up-email" >Email</label> <input id= "up-email" type= "email" name= "up-email" class = "form-control" maxlength= "70" > </div> <div class = "form-group" > <label for = "up-password1" >Password</label> <input id= "up-password1" type= "password" name= "up-password1" class = "form-control" > </div> <div class = "form-group" > <label for = "up-password2" >Ulangi Password</label> <input id= "up-password2" type= "password" name= "up-password2" class = "form-control" > </div> <button type= "submit" name= "sign-up" value= "go" class = "btn btn-success pull-right" ><i class = "fa fa-send" ></i> Send Data</button> </form> </div> </div> </div> </div> </div> <?php //memasukan file footer include_once 'index_footer.php' ; ?> |
Langkah 9
Kita coba tampilkan design form yang telah kita buat di browser.
Caranya, masukan link web kita pada address bar. Disini saya menggunakan “localhost/sms”..
Jika berhasil tampilannya seperti ini..
Deskripsi secara optional dapat anda ubah sesuka hati dengan menyisipkan gambar atau apapun..
SELESAI Design Sampul..
Episode System Sign-Up/Registerasi/Daftar User
Asalamualaikum,
Setelah di part 1 kita telah membuat form untuk Sign-in dan Sign-up yang sekarang kita akan membuat form itu dapat berfungsi untuk memasukan data (Sign-Up)..
Sekarang siapkan Alat dan Bahannya..
- Text editor.
- Browser.
- XAMPP atau server lain.
Sekarang Kita mulai..
Langkah 1
Kita akan membuat Database sebagai wadah data user,
Saya asumsikan anda sudah bias menggunakan PHPmyAdmin..
Buka XAMPP lalu Run Apache dan MySQL..
Langkah 2
Buka PhpMyAdmin..
Sekarang buat database dengan nama sesuka anda, saya menggunakan database name “sms_db”..
Lalu buat table “user”
Dengan struktur sebagai berikut
Lalu buat table “biodata”
Dengan struktur sebagai berikut
Jika anda kesulitan, silahkan jalankan code SQL ini..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| CREATE TABLE IF NOT EXISTS ` user ` ( `id_user` int (11) NOT NULL AUTO_INCREMENT, `username` varchar (15) NOT NULL , ` password ` text NOT NULL , PRIMARY KEY (`id_user`), UNIQUE KEY `username` (`username`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `biodata` ( `id_user` int (11) NOT NULL , `nama` varchar (50) NOT NULL , `email` text NOT NULL , `kelamin` enum( '' , 'L' , 'P' ) NOT NULL , `lahir` date NOT NULL , `lokasi` varchar (50) NOT NULL , `bio` text NOT NULL , `foto` text NOT NULL , `reg_date` date NOT NULL , PRIMARY KEY (`id_user`), UNIQUE KEY `id_user` (`id_user`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
Langkah 3
Buat folder “system” yang akan menampung file-file fungsi php kita agar lebih rapi..
Sekarang kita akan membuat “connect.php” di dalam folder “system” untuk mengkonekkan script php kita ke database..
Struktur foldernya seperti ini..
sms/
->system/
--connect.php
->view/
Kemudian buka connect.php dengan text editor..
Pastekan code ini, penjelasan fungsi dan perintah code sudah ada dalam komentar code..
1
2
3
4
5
6
7
8
9
10
11
12
| <?php //DATA $host = '' ; //isi dengan hostname database anda, untuk XAMPP biasanya 'localhost'. $username = '' ; //isi dengan username database anda, untuk XAMPP biasanya 'root'. $password = '' ; //isi dengan password database anda,untuk XAMPP secara standart kosong ''. $database = '' ; //isi dengan database yang digunakan, disini saya menggunakan 'sms_db'. //PROSES $connect_db =mysql_connect( $host , $username , $password ); $select_db =mysql_select_db( $database ); //ERROR if (! $connect_db ){ echo 'Terjadi ERROR pada Connect Database. Mungkin data yang anda masukan salah.' ; exit ;} if (! $select_db ){ echo 'Database tidak dapat dipilih.. Masukan nama database dengan tepat.' ; exit ;}?> |
Setting koneksi dengan benar dengan mengisi value yang masih kosong.Lalu save..
Langkah 4
Kita akan mulai membuat proses register..
Buka index.php yang di part 1 sudah di buat, buka dengan text editor..
Include kan connect.php di atas include index_header..
1
2
3
4
5
6
| <?php //Connect DB include_once 'system/connect.php' ; //Memasukan File header include_once 'index_header.php' ; ?> |
Kemudian masukan perintah mysql_close() dibawah include index_footer..
1
2
3
4
5
6
| <?php //memasukan file footer include_once 'index_footer.php' ; //menutup koneksi MySQL mysql_close(); ?> |
Kenapa harus ada mysql_close()? Karena code ini di gunkan untuk menutup koneksi yang telah di gunkan dihalaman ini karena akan memberatkan server jika terus di buka, kata guru saya..Lalu save..
Cek ke benaran settingan connect db anda dengan membuka halaman index..
Buka browser, masukan “localhost/sms” di address bar..
Jika tidak ada pesan “Terjadi ERROR pada Connect Database. Mungkin data yang anda masukan salah.” Atau “Database tidak dapat dipilih.. Masukan nama database dengan tepat.”
Berarti settingan anda sudah benar..
Langkah 5
Kita akan membuat proses Sign-Up..
Namun sebelumnya kita buat dulu file “home.php” karena jika proses register sukses maka anda akan di lempar ke “home.php”..
Untuk sementara, isi home.php dengan tulisan “Ini halaman home”..
Sekarang sudah bisa mulai kita mulai membuat Proses Sign-UP..
Buka index.php dengan text editor, Letakan code ini di bawah code include connect.php..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| //Proses Sign-UP/Register if ( $_POST [ 'sign-up' ]) //sesuai dengan nama button pada form sign-up { //Mengambil value dari form.. $up_username =htmlentities(mysql_real_escape_string( $_POST [ 'up-username' ])); $up_name =htmlentities(mysql_real_escape_string( $_POST [ 'up-name' ])); $up_email =htmlentities(mysql_real_escape_string( $_POST [ 'up-email' ])); $up_password1 =htmlentities(mysql_real_escape_string( $_POST [ 'up-password1' ])); $up_password2 =htmlentities(mysql_real_escape_string( $_POST [ 'up-password2' ])); //Cek data kosong. if (! $up_username ){ $error_msg = 'Username Kosong.' ;} elseif (! $up_name ){ $error_msg = 'Nama lengkap Kosong.' ;} elseif (! $up_email ){ $error_msg = 'Email Kosong.' ;} elseif (! $up_password1 ){ $error_msg = 'Password Kosong.' ;} elseif (! $up_password2 ){ $error_msg = 'Password Kosong.' ;} else { //Cek Keunikan Username $username_qry =mysql_query( "SELECT username FROM user WHERE username='$up_username' LIMIT 0,1" ); $cek_username =mysql_num_rows( $username_qry ); if ( $cek_username != '0' ){ $error_msg = 'Username Sudah digunakan. Coba yang lain' ; } else { //Cek format email if (!filter_var( $up_email , FILTER_VALIDATE_EMAIL)) { $error_msg = 'Email tidak Valid.' ; } else { //Cek keunikan email $email_qry =mysql_query( "SELECT email FROM biodata WHERE email='$up_email' LIMIT 0,1" ); $cek_email =mysql_num_rows( $email_qry ); if ( $cek_email != '0' ){ $error_msg = 'Email Sudah digunakan.' ; } else { //encripsi password md5 lalu sha1 lalu md5 biar aman..<img src="/img/emoticon/smile.gif"> $enc_pass1 =md5(sha1(md5( $up_password1 ))); $enc_pass2 =md5(sha1(md5( $up_password2 ))); //Mencocokan Password if ( $enc_pass1 != $enc_pass2 ){ $error_msg = 'Password Tidak Cocok.' ; } else { //Proses Input data di 2 table $go1 =mysql_query( "INSERT INTO user VALUE ('', '$up_username', '$enc_pass1')" ); $id_user =mysql_insert_id(); //Ambil id user secara langsung $go2 =mysql_query( "INSERT INTO biodata (id_user,nama,email,reg_date) VALUE ('$id_user','$up_name','$up_email',NOW())" ); //membuat session $_SESSION [ 'chat_i_id' ]= $id_user ; //melempar ke halaman lain header( 'Location: home.php' ); exit ; } } } } } } |
Kenapa tidak menyimpan data Username dan Password di session?
Tidak menyimpan username, karena username dapat di ubah-ubah. Saya lebih baik meload database untuk mengambil username dan informasi lain dari id yang kita simpan di session..
Tidak meyimpan password, karena disebuah forum banyak teman saya yang memberikan saran agar tidak menyimpan data rahasia di session atau cookies. Karena mungkin saja user dapat menampilkanya dan di decripsi yang tentunya sangat berbahaya..
Langkah 6
Pada kode diatas error yang terjadi sudah di deskripsikan dengan $up_error_msg, tetapi belum ditampikan.
Untuk menampilkan pesan error di atas form, silahkan patekan code ini di atas Komentar <!-- Form Sign-up/Daftar -->..
1
2
| <!-- ERROR Sign-up/Daftar --> <?php if ( $up_error_msg ){ echo '<div class="alert alert-danger">' ; echo $up_error_msg ; echo '</div>' ;}?> |
jika terjadi error maka form akan kembali kosong, untuk mengatasinya kita tambakan data yang telah diambil ke value..
Ganti input username sampai email dengan code ini..
1
2
3
4
5
6
7
8
9
10
11
12
| < div class = "form-group" > < label for = "up-username" >Username</ label > < input value="<?php echo $up_username;?>" id="up-username" type="text" name="up-username" class="form-control" maxlength="15"> </ div > < div class = "form-group" > < label for = "up-name" >Nama Lengkap</ label > < input value="<?php echo $up_name;?>" id="up-name" type="text" name="up-name" class="form-control" maxlength="50"> </ div > < div class = "form-group" > < label for = "up-email" >Email</ label > < input value="<?php echo $up_email;?>" id="up-email" type="email" name="up-email" class="form-control" maxlength="70"> </ div > |
Ini Full Code index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
| <?php //Connect DB include_once 'system/connect.php' ; //Proses Sign-UP/Register if ( $_POST [ 'sign-up' ]) //sesuai dengan nama button pada form sign-up { //Mengambil value dari form.. $up_username =htmlentities(mysql_real_escape_string( $_POST [ 'up-username' ])); $up_name =htmlentities(mysql_real_escape_string( $_POST [ 'up-name' ])); $up_email =htmlentities(mysql_real_escape_string( $_POST [ 'up-email' ])); $up_password1 =htmlentities(mysql_real_escape_string( $_POST [ 'up-password1' ])); $up_password2 =htmlentities(mysql_real_escape_string( $_POST [ 'up-password2' ])); //Cek data kosong. if (! $up_username ){ $up_error_msg = 'Username Kosong.' ;} elseif (! $up_name ){ $up_error_msg = 'Nama lengkap Kosong.' ;} elseif (! $up_email ){ $up_error_msg = 'Email Kosong.' ;} elseif (! $up_password1 ){ $up_error_msg = 'Password Kosong.' ;} elseif (! $up_password2 ){ $up_error_msg = 'Password Kosong.' ;} else { //Cek Keunikan Username $username_qry =mysql_query( "SELECT username FROM user WHERE username='$up_username' LIMIT 0,1" ); $cek_username =mysql_num_rows( $username_qry ); if ( $cek_username != '0' ){ $up_error_msg = 'Username Sudah digunakan. Coba yang lain' ; } else { //Cek format email if (!filter_var( $up_email , FILTER_VALIDATE_EMAIL)) { $up_error_msg = 'Email tidak Valid.' ; } else { //Cek keunikan email $email_qry =mysql_query( "SELECT email FROM biodata WHERE email='$up_email' LIMIT 0,1" ); $cek_email =mysql_num_rows( $email_qry ); if ( $cek_email != '0' ){ $up_error_msg = 'Email Sudah digunakan.' ; } else { //encripsi password md5 lalu sha1 lalu md5 biar aman..<img src="/img/emoticon/smile.gif"> $enc_pass1 =md5(sha1(md5( $up_password1 ))); $enc_pass2 =md5(sha1(md5( $up_password2 ))); //Mencocokan Password if ( $enc_pass1 != $enc_pass2 ){ $up_error_msg = 'Password Tidak Cocok.' ; } else { //Proses Input data di 2 table $go1 =mysql_query( "INSERT INTO user VALUE ('', '$up_username', '$enc_pass1')" ); $id_user =mysql_insert_id(); //Ambil id user secara langsung $go2 =mysql_query( "INSERT INTO biodata (id_user,nama,email,reg_date) VALUE ('$id_user','$up_name','$up_email',NOW())" ); //membuat session $_SESSION [ 'chat_i_id' ]= $id_user ; //melempar ke halaman lain header( 'Location: home.php' ); exit ; } } } } } } //Memasukan File header include_once 'index_header.php' ; ?> <div class = "container-fluid" style= "margin-top: 5%" > <div class = "row" > <div class = "col-md-5 col-md-offset-2" > <!-- Deskripsi --> <div class = "panel panel-default" > <div class = "panel-heading" > <h1 class = "panel-title" ><i class = "fa fa-3x fa-comments-o text-success" ></i> Simple Messanging System [SMS]</h1> </div> <div class = "panel-body" > <img src= "view/images/icon.png" class = "img-responsive center-block" > Membuat Simple Messanging system.. </div> </div> </div> <div class = "col-md-3" > <!-- Layout Sign-in/Login/Masuk --> <div class = "panel panel-default" > <div class = "panel-heading" > <h3 class = "panel-title" ><i class = "fa fa-2x fa-lock text-success" ></i> Sign-In</h3> </div> <div class = "panel-body" > <!-- Form Sign-in/Login/Masuk --> <form action= "" method= "post" > <div class = "form-group" > <label for = "in-username" >Username</label> <input id= "in-username" type= "text" name= "in-username" class = "form-control" maxlength= "15" > </div> <div class = "form-group" > <label for = "in-password" >Password</label> <input id= "in-password" type= "password" name= "in-password" class = "form-control" > </div> <button type= "submit" name= "sign-in" value= "go" class = "btn btn-success pull-right" ><i class = "fa fa-unlock" ></i> OK</button> </form> </div> </div> <!-- Layout Sign-up/Daftar --> <div class = "panel panel-default" > <div class = "panel-heading" > <h3 class = "panel-title" ><i class = "fa fa-2x fa-paper-plane-o text-success" ></i> Sign-Up</h3> </div> <div class = "panel-body" > <!-- ERROR Sign-up/Daftar --> <?php if ( $up_error_msg ){ echo '<div class="alert alert-danger">' ; echo $up_error_msg ; echo '</div>' ;}?> <!-- Form Sign-up/Daftar --> <form action= "" method= "post" > <div class = "form-group" > <label for = "up-username" >Username</label> <input value= "<?php echo $up_username;?>" id= "up-username" type= "text" name= "up-username" class = "form-control" maxlength= "15" > </div> <div class = "form-group" > <label for = "up-name" >Nama Lengkap</label> <input value= "<?php echo $up_name;?>" id= "up-name" type= "text" name= "up-name" class = "form-control" maxlength= "50" > </div> <div class = "form-group" > <label for = "up-email" >Email</label> <input value= "<?php echo $up_email;?>" id= "up-email" type= "email" name= "up-email" class = "form-control" maxlength= "70" > </div> <div class = "form-group" > <label for = "up-password1" >Password</label> <input id= "up-password1" type= "password" name= "up-password1" class = "form-control" > </div> <div class = "form-group" > <label for = "up-password2" >Ulangi Password</label> <input id= "up-password2" type= "password" name= "up-password2" class = "form-control" > </div> <button type= "submit" name= "sign-up" value= "go" class = "btn btn-success pull-right" ><i class = "fa fa-send" ></i> Send Data</button> </form> </div> </div> </div> </div> </div> <?php //memasukan file footer include_once 'index_footer.php' ; //menutup koneksi MySQL mysql_close(); ?> |
Langkah 7
Kita coba melakukan register..
Jika berhasil maka akan dilempar ke halaman home.php dengan tulisan “Ini Halaman Home” seperti yang dibuat di langkah 4..
Untuk mengecek keberhasilan input data kita silahkan cek data di database..
Table “user”
Table “biodata”
SELESAI Membuat Proses Sign-up/Register/Daftar..
Asalamualaikum,
Setelah di part sebelumnya kita sudah membuat design dan proses register, sekarang kita akan membuat “Proses Sign-IN dan Sign-OUT”.
Disini kita akan membuat form Sign-IN di index.php dapat berfungsi dengan cara mengecek data user untuk dapat masuk ke Online Messanger kita.
Sekarang siapkan alat dan bahannya..
- Text editor.
- Browser.
- XAMPP atau server lain.
Langkah 1
Karena di Part 2 kita sudah membuat database dan file connect yang elah di include ke index.php dengan sukses, sekarang kita tinggal membuat proses untuk Sign-IN..
Caranya..
Buka index.php dengan text editor lalu cari komentar “//Memasukan File header”..
Letakan code ini di atas komentar “//Memasukan File header”, fungsi dari code sudah ada dalam komentar code ini..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| //Proses Sign-IN/Login/Masuk elseif ( $_POST [ 'sign-in' ]){ //sesuai nama button submit pada form sign-in //Mengambil value dari form.. $in_username =htmlentities(mysql_real_escape_string( $_POST [ 'in-username' ])); $in_password =htmlentities(mysql_real_escape_string( $_POST [ 'in-password' ])); //Cek data kosong. if (! $in_username ){ $in_error_msg = 'Username Kosong.' ;} elseif (! $in_password ){ $in_error_msg = 'Password Kosong.' ;} else { $enc_pass =md5(sha1(md5( $in_password ))); //Proses Encripsi password. samakan struktur encripsi dengan encripsi pada saat register. saya menggunkan md5->sha1->md5. //Proses Sign-IN $sign_qry =mysql_query( "SELECT id_user FROM user WHERE username='$in_username' AND password='$enc_pass'" ); //mencocokan data Username dan Password $num_rows =mysql_num_rows( $sign_qry ); //Cek jumlah data yang di temukan. if ( $num_rows !=1){ //Memastikan jumlah data yang ditemukan hanya 1 user, jika 1 orang maka akan dinyatakan bahya data sudah valid. $in_error_msg = 'Terjadi tidak kecocokan antara Username dan Password' ; } else { //COCOK //ambil id user $data_user =mysql_fetch_assoc( $sign_qry ); $id_user = $data_user [ 'id_user' ]; //membuat session $_SESSION [ 'chat_i_id' ]= $id_user ; //melempar ke halaman lain header( 'Location: home.php' ); } } } |
Kenapa tidak menyimpan data Username dan Password di session?
Tidak menyimpan username, karena username dapat di ubah-ubah. Saya lebih baik meload database untuk mengambil username dan informasi lain dari id yang kita simpan di session..
Tidak meyimpan password, karena disebuah forum banyak teman saya yang memberikan saran agar tidak menyimpan data rahasia di session atau cookies. Karena mungkin saja user dapat menampilkanya dan di decripsi yang tentunya sangat berbahaya..
Langkah 2
Pada kode diatas error yang terjadi sudah di deskripsikan dengan $in_error_msg, tetapi belum ditampikan.
Untuk menampilkan pesan error di atas form, silahkan patekan code ini di atas Komentar <!-- Form Sign-in/Login/Masuk -->..
1
2
| <!-- ERROR Sign-IN/Login/Daftar --> <? php if($in_error_msg){echo'<div class = "alert alert-danger" >';echo $in_error_msg;echo'</ div >';}?> |
Ganti input username dengan code ini..
1
| <input value= "<?php echo $in_username;?>" id= "in-username" type= "text" name= "in-username" class = "form-control" maxlength= "15" > |
Ini Full Code index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
| <?php //Connect DB include_once 'system/connect.php' ; //Proses Sign-UP/Register if ( $_POST [ 'sign-up' ]) //sesuai dengan nama button pada form sign-up { //Mengambil value dari form.. $up_username =htmlentities(mysql_real_escape_string( $_POST [ 'up-username' ])); $up_name =htmlentities(mysql_real_escape_string( $_POST [ 'up-name' ])); $up_email =htmlentities(mysql_real_escape_string( $_POST [ 'up-email' ])); $up_password1 =htmlentities(mysql_real_escape_string( $_POST [ 'up-password1' ])); $up_password2 =htmlentities(mysql_real_escape_string( $_POST [ 'up-password2' ])); //Cek data kosong. if (! $up_username ){ $up_error_msg = 'Username Kosong.' ;} elseif (! $up_name ){ $up_error_msg = 'Nama lengkap Kosong.' ;} elseif (! $up_email ){ $up_error_msg = 'Email Kosong.' ;} elseif (! $up_password1 ){ $up_error_msg = 'Password Kosong.' ;} elseif (! $up_password2 ){ $up_error_msg = 'Password Kosong.' ;} else { //Cek Keunikan Username $username_qry =mysql_query( "SELECT username FROM user WHERE username='$up_username' LIMIT 0,1" ); $cek_username =mysql_num_rows( $username_qry ); if ( $cek_username != '0' ){ $up_error_msg = 'Username Sudah digunakan. Coba yang lain' ; } else { //Cek format email if (!filter_var( $up_email , FILTER_VALIDATE_EMAIL)) { $up_error_msg = 'Email tidak Valid.' ; } else { //Cek keunikan email $email_qry =mysql_query( "SELECT email FROM biodata WHERE email='$up_email' LIMIT 0,1" ); $cek_email =mysql_num_rows( $email_qry ); if ( $cek_email != '0' ){ $up_error_msg = 'Email Sudah digunakan.' ; } else { //encripsi password md5 lalu sha1 lalu md5 biar aman..<img src="/img/emoticon/smile.gif"> $enc_pass1 =md5(sha1(md5( $up_password1 ))); $enc_pass2 =md5(sha1(md5( $up_password2 ))); //Mencocokan Password if ( $enc_pass1 != $enc_pass2 ){ $up_error_msg = 'Password Tidak Cocok.' ; } else { //Proses Input data di 2 table $go1 =mysql_query( "INSERT INTO user VALUE ('', '$up_username', '$enc_pass1')" ); $id_user =mysql_insert_id(); //Ambil id user secara langsung $go2 =mysql_query( "INSERT INTO biodata (id_user,nama,email,reg_date) VALUE ('$id_user','$up_name','$up_email',NOW())" ); //membuat session $_SESSION [ 'chat_i_id' ]= $id_user ; //melempar ke halaman lain header( 'Location: home.php' ); exit ; } } } } } } //Proses Sign-IN/Login/Masuk elseif ( $_POST [ 'sign-in' ]){ //sesuai nama button submit pada form sign-in //Mengambil value dari form.. $in_username =htmlentities(mysql_real_escape_string( $_POST [ 'in-username' ])); $in_password =htmlentities(mysql_real_escape_string( $_POST [ 'in-password' ])); //Cek data kosong. if (! $in_username ){ $in_error_msg = 'Username Kosong.' ;} elseif (! $in_password ){ $in_error_msg = 'Password Kosong.' ;} else { $enc_pass =md5(sha1(md5( $in_password ))); //Proses Encripsi password. samakan struktur encripsi dengan encripsi pada saat register. saya menggunkan md5->sha1->md5. //Proses Sign-IN $sign_qry =mysql_query( "SELECT id_user FROM user WHERE username='$in_username' AND password='$enc_pass'" ); //mencocokan data Username dan Password $num_rows =mysql_num_rows( $sign_qry ); //Cek jumlah data yang di temukan. if ( $num_rows !=1){ //Memastikan jumlah data yang ditemukan hanya 1 user, jika 1 orang maka akan dinyatakan bahya data sudah valid. $in_error_msg = 'Terjadi tidak kecocokan antara Username dan Password' ; } else { //COCOK //ambil id user $data_user =mysql_fetch_assoc( $sign_qry ); $id_user = $data_user [ 'id_user' ]; //membuat session $_SESSION [ 'chat_i_id' ]= $id_user ; //melempar ke halaman lain header( 'Location: home.php' ); } } } //Memasukan File header include_once 'index_header.php' ; ?> <div class = "container-fluid" style= "margin-top: 5%" > <div class = "row" > <div class = "col-md-5 col-md-offset-2" > <!-- Deskripsi --> <div class = "panel panel-default" > <div class = "panel-heading" > <h1 class = "panel-title" ><i class = "fa fa-3x fa-comments-o text-success" ></i> Simple Messanging System [SMS]</h1> </div> <div class = "panel-body" > <img src= "view/images/icon.png" class = "img-responsive center-block" > Membuat Simple Messanging system.. </div> </div> </div> <div class = "col-md-3" > <!-- Layout Sign-in/Login/Masuk --> <div class = "panel panel-default" > <div class = "panel-heading" > <h3 class = "panel-title" ><i class = "fa fa-2x fa-lock text-success" ></i> Sign-In</h3> </div> <div class = "panel-body" > <!-- ERROR Sign-IN/Login/Daftar --> <?php if ( $in_error_msg ){ echo '<div class="alert alert-danger">' ; echo $in_error_msg ; echo '</div>' ;}?> <!-- Form Sign-in/Login/Masuk --> <form action= "" method= "post" > <div class = "form-group" > <label for = "in-username" >Username</label> <input value= "<?php echo $in_username;?>" id= "in-username" type= "text" name= "in-username" class = "form-control" maxlength= "15" > </div> <div class = "form-group" > <label for = "in-password" >Password</label> <input id= "in-password" type= "password" name= "in-password" class = "form-control" > </div> <button type= "submit" name= "sign-in" value= "go" class = "btn btn-success pull-right" ><i class = "fa fa-unlock" ></i> OK</button> </form> </div> </div> <!-- Layout Sign-up/Daftar --> <div class = "panel panel-default" > <div class = "panel-heading" > <h3 class = "panel-title" ><i class = "fa fa-2x fa-paper-plane-o text-success" ></i> Sign-Up</h3> </div> <div class = "panel-body" > <!-- ERROR Sign-up/Daftar --> <?php if ( $up_error_msg ){ echo '<div class="alert alert-danger">' ; echo $up_error_msg ; echo '</div>' ;}?> <!-- Form Sign-up/Daftar --> <form action= "" method= "post" > <div class = "form-group" > <label for = "up-username" >Username</label> <input value= "<?php echo $up_username;?>" id= "up-username" type= "text" name= "up-username" class = "form-control" maxlength= "15" > </div> <div class = "form-group" > <label for = "up-name" >Nama Lengkap</label> <input value= "<?php echo $up_name;?>" id= "up-name" type= "text" name= "up-name" class = "form-control" maxlength= "50" > </div> <div class = "form-group" > <label for = "up-email" >Email</label> <input value= "<?php echo $up_email;?>" id= "up-email" type= "email" name= "up-email" class = "form-control" maxlength= "70" > </div> <div class = "form-group" > <label for = "up-password1" >Password</label> <input id= "up-password1" type= "password" name= "up-password1" class = "form-control" > </div> <div class = "form-group" > <label for = "up-password2" >Ulangi Password</label> <input id= "up-password2" type= "password" name= "up-password2" class = "form-control" > </div> <button type= "submit" name= "sign-up" value= "go" class = "btn btn-success pull-right" ><i class = "fa fa-send" ></i> Send Data</button> </form> </div> </div> </div> </div> </div> <?php //memasukan file footer include_once 'index_footer.php' ; //menutup koneksi MySQL mysql_close(); ?> |
Langkah 3
Sekarang coba lakukan login dengan data yang anda register/daftarkan.
Jika berhasil anda akan di lempar ke halaman home.php
Langkah 4
Setelah selesai membuat proses sign in sekarang kita akan membuat proses sign out..
Buat file “out.php” di folder “system” yang telah kita buat di Part 2..
Buka file out.php dengan text editor..
Lalu pastekan code berikut, fungsi dari kode sudah ada di komentar code..
1
2
3
4
| <?php session_start(); session_unset( $_SESSION [ 'chat_i_id' ]); //menghapus session header( 'Location: ../index.php' ); ?> |
Langkah 5
Sekarang kita tambahkan link sementara untuk Sign-Out di home.php..
Buka home.php dengan text editor..
Lalu tambahkan link yang menuju ke “system/out.php”..
Contoh..
1
| < a href=” system/out.php”>Sign-OUT</ a > |
Selesai Membuat Proses Sign-IN dan Sign-OUT..
No comments:
Post a Comment