Tuesday, May 18, 2010

Script PHP auto logout system / logout otomatis


Sesuai dengan request untuk postingan baru dan pertanyaan dari salah satu pengunjung blog kami .... yaitu script untuk

membuat sistem logout otomatis jika suatu account sudah login kemudian ia login kembali dengan browser yang berbeda, maka

pada artikel ini akan membahas permasalahan tersebut.

Disini saya tidak menggunakan username dengan password yang dinamis, saya menggunakan username dengan password statis

(untuk mempermudah tutorial saja). Username yang digunakan disini yaitu "catment" dengan password "qwerty" tanpa tanda

petik.

Untuk kali ini saya hanya membuat sistem yang sederhana saja.

Sebelumnya kita buat halaman konfigurasi database, simpan dengan nama db_config.php

<?php
$hostname_conn="localhost"; //hostname
$username_conn=""; //username database
$password_conn=""; //password
$db_conn=""; //nama database yang digunakan
mysql_connect($hostname_conn,$username_conn,$password_conn,$db_conn) or die ("Koneksi gagal!");
mysql_select_db($db_conn);
?>
Selanjutnya buat halaman login yang disini saya buat sekaligus menjadi halaman index, maka beri nama halaman ini dengan

index.php
<?php
session_start();
include"db_config.php";
include"session.php";
if($_SESSION['login_stat']=="fail")
{
echo"$_SESSION[message]<hr />";
unset($_SESSION['login_stat'],$_SESSION['message']);
}
?>
<form action="login_proses.php" method="post">
Username - Password : <input type="text" name="username" /> - <input type="password" name="pass" /> <input

type="submit" name="act" value="Login" />
</form>

Selanjutnya halaman proses login maupun logout (saya buat jadi 1file), beri nama dengan login_proses.php

<?php
session_start();
include"db_config.php";
$username=$_POST['username'];
$pass=$_POST['pass'];
$act=$_POST['act'];
$do=$_GET['do'];
/**login**/
if(isset($_REQUEST['act']) && $act=="Login")
{
if($username=="catment" && $pass=="qwerty") //misalkan username dan password yg sesuai yaitu user "catment" dengan

password "qwerty"
{
$sesi=md5(microtime());
/*cek data login sblmnya*/
$command="SELECT * FROM log_login WHERE username='$username'";
$row=mysql_fetch_array(mysql_query($command));
if($row[username]!=="")
{
$command="DELETE FROM log_login WHERE username='$row[username]'";
$delete=mysql_query($command);
}
/*--------*/
/*input database*/
$command="INSERT INTO log_login VALUES ('$username','$sesi')";
$input=mysql_query($command);
/*--------*/
/*cek input database*/
if($input==1)
{
$_SESSION['username']="$username";
$_SESSION['login_stat']="ok";
$_SESSION['sesi']=$sesi;
$_SESSION['message']="Welcome, $username..!! [<a href='login_proses.php?do=logout'>Logout</a>]";
header("Location: index.php");
}
else
{
$_SESSION['login_stat']="fail";
$_SESSION['message']="Maaf ada gangguan, silahkan coba login kembali.";
header("Location: index.php");
}
/*--------*/
exit();
}
else
{
header("Location: index.php");
$_SESSION['login_stat']="fail";
$_SESSION['message']="Maaf username dengan password salah!!";
exit();
}
}
/**--------**/
/**logout**/
if($do=="logout")
{
/*delete database*/
$command="DELETE FROM log_login WHERE username='$_SESSION[username]'";
$delete=mysql_query($command);
/*--------*/
/*cek delete database*/
if($delete==1)
{
session_destroy();
header("Location:index.php");
}
else
{
echo"Maaf logout gagal! Ada gangguan, silahkan coba <a href='login_proses.php?do=logout'>logout</a> kembali.";
}
/*--------*/
}
/**--------**/
?>

Dan terakhir adalah membuat halaman session.php

<?php
$command="SELECT * FROM log_login WHERE username='$_SESSION[username]'";
$row=mysql_fetch_array(mysql_query($command));
if($_SESSION['login_stat']=="ok" && $_SESSION['sesi']==$row[sesi])
{
echo"$_SESSION[message]<hr />";
exit();
}
if($_SESSION['login_stat']=="ok" && $_SESSION['sesi']!==$row[sesi])
{
session_destroy();
}
?>

Untuk tabel database yang saya gunakan yaitu:
CREATE TABLE `log_login` (
`username` varchar(100) NOT NULL default '',
`sesi` varchar(32) NOT NULL default '',
PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Maka tabelnya akan seperti ini:

Untuk mencoba demonya silahkan buka catment.co.cc/demo/login
Untuk mendownload file yang sudah jadi secara lengkap silahkan [DOWNLOAD]