18 March, 2011

script login dan logout pada php

saya yakin anda semua pasti sudah mengeahui apa itu login dan logout. login biasanya digunakan untuk memasuki sebuah situs yang tidak bisa di akses oleh user/pengguna lain. sedangkan logout digunakan untuk keluar dari situs tersebut.
ok, langsung aja kita coba bahas ya .hhehe (klo ada salah2 harap di jitak :p)

sebelumnya kita buat dahulu databasenya, berikut scriptnya:



CREATE TABLE `t_admin` (
`uname` varchar(15) NOT NULL,
`pass` varchar(50) NOT NULL,
PRIMARY KEY  (`uname`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `t_admin` VALUES ('matley', 'mamamia');
INSERT INTO `t_admin` VALUES ('maemunah', '1234567');

disini kita akan membuat 5 file, yaitu:
1. index.php
2. c_admin.php
3. menu.php
4. logout.php
5. session.php

berikut adalah scriptnya:

index.php
<body>
<p style="background:#FAF5E4; border:1px solid; padding:5px; font-size:20px;" align="center">
Login admin
</p>
<form id="form1" name="form1" method="post" action="c_admin.php">
<table width="200" border="0" cellpadding="0" cellspacing="0" align="center" >
<tr>
<td width="92" style="padding:5px;">username</td>
<td width="11" style="padding:5px;"><div align="center">:</div></td>
<td width="75" style="padding:5px;"><input type="text" name="uname" style="font-size:11px;" /></td>
</tr>
<tr>
<td style="padding:5px;">password</td>
<td style="padding:5px;"><div align="center">:</div></td>
<td style="padding:5px;"><input name="pass" type="password" style="font-size:11px;" /></td>
</tr>
<tr>
<td style="padding:5px;">&nbsp;</td>
<td style="padding:5px;">&nbsp;</td>
<td style="padding:5px;"><input type="submit" name="Submit" value="login" style="font-size:11px;" /></td>
</tr>
</table>
</form>
</body>
perhatikan teks yang di bold, artinya jika di klik button submit maka akan beralih ke halaman c_admin.php. dan akan mengirimkan isi variabel dengan nama uname dan pass.

c_admin.php
<?
session_start();
mysql_connect("localhost","root","1234567")or die("koneksi gagal");
mysql_select_db("db_matley");

$uname = $_POST['uname'];
$pass  = $_POST['pass'];
$sql = mysql_query("select * from t_admin where uname = '$uname'");
$num = mysql_num_rows($sql);
$row = mysql_fetch_array($sql);
if ($uname != "" and $pass != ""){
if ($num = 0 or $row['pass'] != $pass){
echo "<SCRIPT>alert('Username atau Password tidak valid !'); window.history.go(-1); </SCRIPT>\n" ;
}else{
$_SESSION['uname'] = $uname;
header ("location:menu.php");
}
}else{ 
echo "<SCRIPT>alert('Lengkapi textbox yang kosong.'); window.history.go(-1); </SCRIPT>\n" ;
}
?>
pada file ini data dengan nama variabel uname dan pass akan diproses dengan mengecek terlebih dahulu pada database. jika uname atau pass pada halaman index.php berisi kosong maka akan muncul pesan "Lengkapi textbox yang kosong". dan jika textbox telah di isi maka akan mengecek proses selanjutnya, yaitu apabila uname pada database tidak ditemukan atau pass yang di masukkan pada halaman index tidak sama dengan pass yang terdapat pada database maka akan muncul pesan "Username atau Password tidak valid", otomatis login gagal dan akan kembali ke halaman index.php. namun jika uname dan pass benar maka akan menuju halaman menu.php. berikut adalah script menu.php:

menu.php
<?
include "session.php";
$username=$_SESSION['uname'];
?>
Selamat datang, <? echo "<b>$username</b>"; ?>
<br />
<a href="logout.php">Logout</a>
terdapat script include "session.php"; gunanya untuk mengecek session, akan di bahas pada halaman session.php. dan terdapat link logout untuk logout/keluar dari halaman ini.

logout.php
<?php
session_start();
unset($_SESSION['uname']);
header("Location: index.php");
?>
halaman ini berfungsi untuk menghapus session dan otomatis akan mendirect ke halaman index.php.

session.php
<?
session_start();
if (!isset($_SESSION['uname'])) {
echo "<br>Anda tidak berhak mengakses halaman ini.";
echo "<br>Yang bener </font><font face='Lucida Sans Unicode' size='4' color='#001234'><a href='index.php'>LEWAT SINI.</a></font>";
exit;
}
?>
halaman ini digunakan untuk mengecek session, baiknya di panggil dengan menggunakan perintah include pada setiap halaman yang tidak ingin halamannya di akses orang yang tidak berkepentingan (salah satu cara untuk aman .hhihi)
silahkan download contohnya disini.
Load disqus comments

0 komentar