Kali ini, kita akan mencoba membuat
Login Page dengan menggunakan PHP/MySQL. Contoh berikut masih merupakan contoh yang sangat sederhana, pengembangannya terserah kepada kreatifitas kita sendiri.
Disini kita akan membuat 4 file php sebagai contoh, yaitu:
- login.php
- ceklogin.php
- loginsukses.php
- logout.php
Nah, langkah-langkah yang akan kita lakukan adalah sebagai berikut:
Create Tabel "user" di dalam database "tes"(Saya menggunakan CLI untuk MySQL, silahkan menggunakan phpMyAdmin untuk mempermudah anda)
[root@fedora-box]mysql -u admin -p
Enter Password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 37428
Server version: 5.0.51a Source distribution
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>create database tes;
Query OK, 1 row affected (0.01 sec)
mysql> use tes;
Database changed
mysql> CREATE TABLE `user` (
-> `id` int(4) NOT NULL auto_increment,
-> `username` varchar(65) NOT NULL default '',
-> `password` varchar(65) NOT NULL default '',
-> PRIMARY KEY (`id`)
-> ) TYPE=MyISAM AUTO_INCREMENT=2 ;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql>
mysql> --
mysql> -- Dumping data for table `user`
mysql> --
mysql>
mysql> INSERT INTO `user` VALUES (1, 'kapluk', '4321');
Query OK, 1 row affected (0.00 sec)
Membuat file login.php<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="ceklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>Tampilan di web browser anda akan seperti ini:
Membuat file ceklogin.php<?php
$host="localhost"; // Host name server anda, biasanya menggunakan localhost bila MySQL Server ada di server yang sama di mana web server kita berada
$username=""; // username yang digunakan untuk mengakses MySQL (saya menggunakan user 'admin')
$password=""; // password untuk user admin di atas untuk mengakses MySQL (password saya....husss...)
$db_name="tes"; // Nama database yang suda kita buat
$tbl_name="user"; // Nama Tabel yang sudah kita buat
// Koneksi ke MySQL Server dan menggunakan database
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Username dan password yang di dapat dari form login
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// Untuk memproteksi MySQL Injection (lihat disini (http://us.php.net/mysql_real_escape_string) untuk keterangan detail tentang MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row akan menghitung jumlah baris dari tabel
$count=mysql_num_rows($result);
// Bila hasilnya valid, seharusnya jumlah baris untuk query di atas adalah 1 baris
if($count==1){
// Register $myusername, $mypassword dan me-redirect ke halaman "loginsukses.php"
session_register("myusername");
session_register("mypassword");
header("location:loginsukses.php");
}
else {
echo "Username atau Pasword anda salah";
}
?>Membuat file loginsukses.php// Mengecek apakah session teregistrasi atau tidak. Bila session tidak teregistrasi, akan redirect ke halaman utama (login.php)
// Tempatkan kode ini pada baris pertama.
<?php
session_start();
if(!session_is_registered(myusername)){
header("location:login.php");
}
?>
<html>
<body>
Login Berhasil!
</body>
</html>Membuat file logout.phpBila anda ingin membuat halaman logout, kode berikut bisa anda tempatkan di satu halaman "logout.php" dan berikan link di halaman lain untuk mengeksekusi halaman ini.
// Tempatkan kode berikut di baris pertama
<?php
session_start();
session_destroy();
?>Untuk PHP5, halaman ceklogin.php adalah sebagai berikut<?php
ob_start();
$host="localhost"; // Host name server anda, biasanya menggunakan localhost bila MySQL Server ada di server yang sama di mana web server kita berada
$username=""; // username yang digunakan untuk mengakses MySQL (saya menggunakan user 'admin')
$password=""; // password untuk user admin di atas untuk mengakses MySQL (password saya....husss...)
$db_name="tes"; // Nama database yang suda kita buat
$tbl_name="user"; // Nama Tabel yang sudah kita buat
// Koneksi ke MySQL Server dan menggunakan database
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Username dan password yang di dapat dari form login
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// Untuk memproteksi MySQL Injection (lihat disini (http://us.php.net/mysql_real_escape_string) untuk keterangan detail tentang MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row akan menghitung jumlah baris dari tabel
$count=mysql_num_rows($result);
// Bila hasilnya valid, seharusnya jumlah baris untuk query di atas adalah 1 baris
if($count==1){
// Register $myusername, $mypassword dan me-redirect ke halaman "loginsukses.php"
session_register("myusername");
session_register("mypassword");
header("location:loginsukses.php");
}
else {
echo "Username atau Pasword anda salah";
}
ob_end_flush();
?>Sekian dulu, bila ada umur panjang akan kita sambung lagi dengan bagaimana mengcreate
SIGNUP PAGE/REGISTRATION PAGE, sekaligus dengan mengengkripsikan password user langsung ketika proses registrasi.
Mohon koreksi atas
mistypo dan kesalahan lainnya...