Lorem ipsum dolor sit amet, consectetur adipiscing elit. Test link

Menggunakan Session untuk Login [PHP]

Proses Login

Sebelumnya tentu kita harus persiapkan database yang berisi username dan password, dan file untuk koneksi ke database. Session ini akan kita terapkan dalam form login yang di dalamnya terdapat script PHP yang bertugas untuk menjalankan proses login atau autentifikasi.
Setiap kali kita akan menggunakan session harus dimulai dengan fungsi session_start(); terlebih dahulu.
Berikut script lengkap untuk halaman login menggunakan session.

<?php
if($action==”login”)
{
session_start();
session_register(“reg_username”);
session_register(“reg_userid”);
session_register(“reg_userpassword”);
require “connect.php”;
if(!($link=mysql_pconnect($host, $db_username,$db_password)))
{
printf(“%s\n”,mysql_error());
exit();
}
if(!($r=mysql_db_query(“$db_name”, ”select * from user_data  where user_id=’$user_id’”)))
{
printf(“Error %d:%s\n”,mysql_errno(),
mysql_error());
exit();
}
if(($row=mysql_fetch_array($r)) && ($user_password==$row[2] && $user_password!=””))
{
$reg_username=$row[0];
$reg_userid=$user_id;
$reg_userpassword=$user_password;
header(“location: user_page.php”);
} else
{
session_unset();
session_destroy();
echo “Login gagal! Periksa user ID dan pasword anda<br>”;
echo “<a href=\”login.php\”>
Back to login</a>”;
exit();
}
}
?>
<html>
<head>
<title>Login dengan Session</title>
</head>
<body>
<h1 align=”center”>Please Login</h1>
<form method=”post” action=”login.php?action=login”>
<table align=”center”>
<tr>
<td>Enter your ID:</td>
<td><input name=”user_id” type=”text”></td>
</tr>
<tr>
<td>Enter your Password:</td>
<td><input name=”user_password”type=”password”></td>
</tr>
<tr>
<td></td>
<td><input name=”submit” type=”submit” value=”Login”></td>
</tr>
</table>
</form>
</body>
</html>
Pada awal scrip di atas  session_start(); akan memulai sesi baru kemudian dilanjutkan dengan mendaftarkan variabel-variabel session yang nantinya akan digunakan dalam halaman setelah login. Dalam penerapannya kita bisa menambahkan variabel lain yang berisi data user yang login.
Setelah user berhasil login, akan ditampilkan halaman user. Scriptnya adalah sebagai berikut.
<?php
session_start();
if(!session_is_registered(‘reg_userid’))
{
header(“location: login.php”);
exit();
}
?>
<html>
<head>
<title>Halaman Setelah Login</title>
<body>
Selamat datang <?echo “$reg_username”?><br>
Anda telah login sebagai <?echo “$reg_userid”;?><br>
<a href=”sess_logout.php”>Logout</a>
</body>
</html>

Kita bisa menyimpannya dengan nama user_page.php. Pada halaman ini, kita bisa membuat halaman user dalam tag <body> sesuai dengan keinginan kita. Variabel session yang telah terdaftar dapat kita gunakan dalam halaman ini.

Keamanan Halaman User

Namun ada kemungkinan user yang langsung mengetikkan user_page.php dalam alamat browser sehingga halaman user bisa tampil tanpa login terlebih dahulu. Untuk menjaga dari hal yang demikian atau meningkatkan keamanan, maka setiap halaman yang ingin kita sembunyikan dari user yang belum login kita berikan script PHP seperti berikut ini.
<?php
session_start();
if(!session_is_registered(‘reg_userid’))
{
header(“location: login.php”);
exit();
}
?>
Script tersebut akan melakukan pengecekan terhadap variabel reg_userid apakah sudah terdaftar atau belum. Bila variabel session belum terdaftar maka user akan diarahkan ke halaman login untuk melakukan login terlebih dahulu.

Proses Logout

Setelah user ingin mengakhiri sesinya, user harus melakukan logout terlebih dahulu. Proses logout ini penting dilakukan untuk menghapus data user dalam browser. Bila user lupa melakukan logout, dan user lain menggukan komputer yang sama kemungkinan akan bisa mengakses halaman user dengan menggunakan data user sebelumnya. Hal ini tentunya sangat berbahaya. Proses logout bisa dijalankan file PHP dengan script berikut.
<?php
session_start();
session_unset();
session_destroy();
header(“locathon: login.php”);
?>
Dengan baris script tersebut semua data session user akan hilang dan halaman user tidak akan bisa diakses lagi kecuali dengan melakukan proses login terlebih dahulu.
Lay out and vector designer, 'little' programmer.

Posting Komentar