PHP : Login Dengan Fitur Remember Me

Monday, October 9, 20170 comments

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
        header('Location: http://localhost/ngulik/login_remember_me/member_area.php'); 
 
    }
}
?>
<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. 
Share this article :

Post a Comment

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. Tutorial Web Programming - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger