Pada tutorial kali ini saya akan membahas salah satu fitur tambahan saat login, yaitu biasa di kenal dengan "remember me" atau kalau dalam bahasa indonesia "biarkan saya tetap masuk". Fitur ini dibuat dengan simulasi sederhana (tanpa database) menggunakan cookies sebagai storage untuk menyimpan identitas user.
1. buat statik variabel, statik variabel ini menyimpan variabel user dan password, statik variabel sebagai simulasi dari penggunaan database, pada sistem sebenernya pengecekan username dan password melalui data user di database.
1
2
3
4
5
6
| <?php $username = "user" ; $password =md5( 'user' ); ?> |
2. buat form login, form-login.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <html> <head> <title>Login Dengan Remember me (cookies)</title> </head> <body> <form method= "post" action= "login.php" > <p><label for = "username" >Username : <input type= "text" name= "username" /></label></p> <p><label for = "password" >Password : <input type= "password" name= "password" /></label></p> <p><label for = "setcookie" ><input type= "checkbox" name= "setcookie" value= "true" id= "setcookie" /> Remember Me</label></p> <p><input type= "submit" name= "submit" value= "Submit" /> <input type= "reset" name= "reset" value= "Reset" /></p> </form> </body> </html> |
3. buat action untuk form, action ini akan menghandle pengecekan username dan mensetcookie jika fitur remember me di select.
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
| <?php //session start session_start(); //panggil statik variabel username dan password include ( 'statik_variabel.php' ); //get post $user = $_POST [ 'username' ]; $pass = $_POST [ 'password' ]; //untuk menentukan expire cookie, dihtung dri waktu server + waktu umur cookie $time = time(); //cek jika setcookie di cek set cookie jika tidak '' $check = isset( $_POST [ 'setcookie' ])? $_POST [ 'setcookie' ]: '' ; if (( $username == $user )&&( $password ==md5( $pass ))) { //jika valid set session 1 $_SESSION [ 'logged' ] = 1; //jika remembere me, set cookie if ( $check ) { setcookie( "cookielogin[user]" , $user , $time + 3600); setcookie( "cookielogin[pass]" , $pass , $time + 3600); } //redirect member_area exit (); } else { exit (); } ?> |
file login utama merupakan skrip utama untuk menghandle, apakah username dan password yang dimasukkan benar jika benar redirect page ke page "member_area.php", jika salah redirect page ke form-login.php. Selanjutnya cek kembali apakah fitur remember me diaktifkan? jika diaktifkan set cookie dengan nama username, berisi data $username, dengan waktu skrg + 3600 (1 jam dari sekarang).
4. buka kembali file form-login.php, kemudian modifikasi skripnya menjadi.
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
| <html> <head> <title>Login Dengan Remember me (cookies)</title> </head> <body> <?php //masukkan variabel statik, variabel ini merupakan variabel yang username & password, untuk sistem pada realnya //username dan password dapat di cek dari database. include ( 'statik_variabel.php' ); //mulai session session_start(); //cek cookie, dalam sistem login sederhana ini, cookie diberinama "cookielogin" if (isset( $_COOKIE [ 'cookielogin' ])){ //cek cookie login dengan password dan username yang valid //$user = $_COOKIE['cookielogin']['username']; //print_r($user); if (( $_COOKIE [ 'cookielogin' ][ 'user' ]== $username )&&( $_COOKIE [ 'cookielogin' ][ 'pass' ]== $password )){ print_r( $_COOKIE ); //jika valid set status login 1 $_SESSION [ 'logged' ]=1; //redirect ke halaman member area } } ?> <form method= "post" action= "login.php" > <p><label for = "username" >Username : <input type= "text" name= "username" /></label></p> <p><label for = "password" >Password : <input type= "password" name= "password" /></label></p> <p><label for = "setcookie" ><input type= "checkbox" name= "setcookie" value= "true" id= "setcookie" /> Remember Me</label></p> <p><input type= "submit" name= "submit" value= "Submit" /> <input type= "reset" name= "reset" value= "Reset" /></p> </form> </body> </html> |
5. buat halaman member_area.php
1
2
3
4
5
| <?php session_start(); ?> <h1>Selamat Datang di Halaman Member Area.</h1><br/> <a href= "logout.php" >Logout</a> |
6. buat skrip logout.php
1
2
3
4
5
6
7
8
9
10
11
12
13
| <?php session_start(); session_unset(); session_destroy(); if (isset( $_COOKIE [ 'cookielogin' ])) { $time = time(); setcookie( "cookielogin[user]" , $time - 3600); setcookie( "cookielogin[pass]" , $time - 3600); } exit (); ?> |
untuk melakukan testing pada skrip diatas, ketika kita mengaktifkan fitur remember me, kemudian login, kemudian kita close browser. kita akses kembali form-login.php maka akan secara otomatis masuk ke halaman member_area.php, mudah bukan? :D, semoga bermanfaat.
Post a Comment