
Setelah sebelumnya menulis artikel
Contoh sederhana menggunakan session di PHP ,kali ini ane membuat contoh
script php login menggunakan menggunakan pengatur waktu session.Maksudnya pengatur waktu adalah kita menentukan berapa lama sesi login bertahan sesuai dengan waktu yang kita tentukan jika tidak ada request terhadap halaman tertentu.
Contohnya begini ,jika kita mengakses sebuah halaman website selalu ada masa idle(diam tak bergerak

).Maksudnya, kita tidak melakukan apa-apa sama sekali di halaman tersebut, tidak berpindah halaman, tidak memasukkan input , dan tidak melakukan apapun yang menyebabkan sebuah halaman terrefresh.Atau dengan kata lain,kita tidak melakukan apa pun pada halaman yang sedang kita kunjungi.
Nah apabila kita sedang di warnet,lalu kita lupa logout kan bahaya.bisa bisa orang iseng
memanfaatkan session kita tadi,untuk itulah kita perlu menentukan waktu kapan seseorang harus logout jika tidak ada request terhadap sebuah halaman dalam sebuah website.
Sebagai contoh
pengatur waktu session ane pake 4 buah file.
Form.php
Login.php
Admin.php
Logout.php
Filename : form.php
1 | <?php |
2 | echo '<form action="login.php" method="post"> |
3 | Username<br /> |
4 | <input type="text" name="user" /><br /> |
5 | Password<br /> |
6 | <input type="password" name="sandi" /> |
7 | <br /> |
8 | <input type="submit" value="Login" /> |
9 | </form>'; |
10 | ?> |
Filename Login.php :
1 | <?php |
2 | //memulai session |
3 | session_start(); |
4 | //koneksi |
5 | $server='localhost'; |
6 | $user_db='user'; |
7 | $sandi_db='sandi'; |
8 | $database='nama_db'; |
9 | $konek=mysql_connect($server,$user_db,$sandi_db); |
10 | if(!$konek) die(mysql_error()); |
11 | mysql_select_db($database) or die(mysql_error()); |
12 | //waktu sekarang GMT+7 |
13 | $waktu=time()+25200; |
14 | //waktu timeout (detik) |
15 | $expired=60; |
16 | $user=$_POST['user']; |
17 | $sandi=$_POST['sandi']; |
18 | //cek kecocokan username dan sandi |
19 | $query=mysql_query("select dy_user,dy_pw from dy_adm where dy_user='$user' and dy_pw='$sandi'") or die(mysql_error()); |
20 | //jika cocok,user akan di arahkan ke admin.php |
21 | if(mysql_num_rows($query) != 0) |
22 | {//membuat sesi user |
23 | $_SESSION['user']=$user.$sandi; |
24 | //membuat sesi timeout |
25 | $_SESSION['timeout']=$waktu+$expired; |
26 | header('location:admin.php'); |
27 | } |
28 | //jika tidak,user akan di kembalikan ke form login.php |
29 | else{ |
30 | header('location:form.php');} |
31 | mysql_close($konek); |
32 | ?> |
Filename admin.php
1 | <?php |
2 | session_start(); |
3 | //waktu sekarang GMT+7 |
4 | $waktu=time()+25200; |
5 | //waktu timeout (detik) |
6 | $expired=60; |
7 | //jika dalam keadaan login |
8 | if(isset($_SESSION['user'])) |
9 | { |
10 | //jika waktu sekarang kurang dari sesi timeout |
11 | if($waktu < $_SESSION['timeout']) |
12 | { |
13 | //hapus sesi timeout yang lama ,buat sesi timeout yang baru |
14 | unset($_SESSION['timeout']); |
15 | $_SESSION['timeout']=$waktu+60; |
16 | //disini konten untuk user atau admin yang berhasil login |
17 | echo '<a href="logout.php">Logout</a>';} |
18 | else{ |
19 | session_destroy(); |
20 | echo 'session kamu sudah habis,silahkan login kembali';}} |
21 | else{ |
22 | echo 'kamu harus login dulu untuk mengakses halaman ini';} |
23 | ?> |
Filename logout.php
1 | <?php |
2 | session_start(); |
3 | //menghapus semua sesi |
4 | session_destroy(); |
5 | echo 'kamu sudah logout'; |
6 | ?> |
Mudah mudahan bermanfaat