Saya termasuk yang masih harus belajar banyak di area programming (dan area-area lain tentunya 🙂 – Lifetime Learning). Karena itu, sebagai pengulangan, saya coba posting dan catat kembali proses pembelajaran saya itu biar makin lengket di kepala.
Pada postingan 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>
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 sudah 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.php
Bila 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();
?>
Mohon koreksi atas mistypo dan kesalahan lainnya…
2 Comments
You can post comments in this post.
Terimakasih sangat membantu
Redi dogomo 7 years ago
Senang bisa berbagi informasi 🙂
Adi Sunardy 7 years ago
Post A Reply