Beranda > PHP > Membuat form login menggunakan php mysql

Membuat form login menggunakan php mysql

Halaman login.php

Tidak ada kode PHP disini, hanya HTML untuk membuat form isian login.

login

Kode lengkap login.php

01 <html>
02 <head>
03 <title>Login</title>
04 </head>
05 <body>
06 <h1>LOGIN</h1>
07 <table>
08 <form action="login_proses.php">
09 <tr>
10  <td>User Id</td>
11  <td><input type="text" name="user_id" maxlength="255" size="20"></td>
12 </tr>
13 <tr>
14  <td>Password</td>
15  <td><input type="password" name="pass" maxlength="255" size="20"></td>
16 </tr>
17 <tr>
18  <td></td>
19  <td><input type="submit" value="Log in"></td>
20 </tr>
21 </form>
22 </table>
23 </body>
24 </html

Seperti yang sudah kita ketahui jika tombol Log in di tekan maka selanjutnya adalah login_proses.php yang akan menangani validasi dan proses selanjutnya.

Kode lengkap login_proses.php

Perhatikan session_start() harus menjadi kode eksekusi PHP yang harus dibaca pertama kali oleh mesin PHP itu sebabnya  ia berada di urutan paling atas setelah tag PHP. SEDERHANANYA session_start() merupakan penanda bahwa halaman ini akan menggunakan fitur session dari PHP dan ia harus ditulis paling dulu ;-)

30 if( empty( $row[0] ) )
37 if( $row[1] != $pass )

Kita sedikit review dari latihan PHP bagian 2 bagi yang masih sedikit bingung dengan variabel $row[0] pada baris ke-30 dan $row[1] pada baris ke-37.

26 $sql = 'select * from USER_NYA where USER_ID="' . $user_id . '"';
27 $query = mysql_query( $sql );
28 $row = mysql_fetch_row( $query );

Kode mulai baris 26 sampai 28 menunjukan bahwa terjadi pemanggilan data ke tabel USER_NYA yang memiliki USER_ID sama dengan nilai yang dikandung dari variabel $user_id.

Index 0 1
Kolom USER_ID PASS

Tabel USER_NYA

Mulai ada pencerahan mengenai $row[0] dan $row[1] ? nilai 0 dan 1 menunjukan index dari kolom pada tabel USER_NYA sehingga pemanggilan $row[0] sama dengan pemanggilan nilai pada kolom USER_ID dan $row[1] sama dengan nilai dari kolom PASS, begitu seterusnya.

Didalam if() saya menggunakan beberapa operator pembanding berikut penjelasannya :

Operator Keterangan syntax
EQUAL TRUE, jika $a Sama dengan $b $a == $b
IDENTICAL TRUE, jika sama nilai dan tipe variabel-nya antara $a dan $b $a === $b
AND TRUE, jika $a bernilai true dan $b juga true $a AND $b atau $a && $b
OR TRUE, jika $a atau $b bernilai true $a OR $b atau $a || $b
NOT negasi !
NOT EQUAL TRUE, jika $a tidak sama dengan $b $a != $b atau $a <> $b
NOT IDENTICAL TRUE, jika $a tidak identik dengan $b $a !== $b
LESS THAN TRUE, jika $a kurang dari $b $a < $b
GREATER THAN TRUE, jika $a lebih dari $b $a > $b
LESS THAN or EQUAL TO TRUE, jika $a kurang dari sama dengan $b $a <= $b
GREATER THAN or EQUAL TO TRUE, jika $a lebih dari sama dengan $b $a >= $b

Operator pembanding

Jika variabel lolos validasi maka username dan password akan di daftarkan menjadi variabel global dalam session artinya variabel tersebut akan dapat diakses dari halaman manapun yang menggunakan session_start().

Pendaftaran dan assignment variabel SESSION ditangani oleh blok kode :

$_SESSION['ID'] = $user_id;
$_SESSION['PASS'] = $pass;

Setelah variabel terdaftar user akan di-redirect ke halaman yang hanya bisa dibuka jika loginnya berhasil, blok redirect ditangani oleh kode,

/* Redirect jika tidak ada error */
 header('Location:login_lanjut.php');

 exit(); //hentikan eksekusi kode di login_proses.php

Jika username dan password cocok maka halaman buku tamu akan terbuka, disini baru ada ucapan selamat datang dan link Logout, nanti bisa ditambah sendiri sesuai dengan fitur yang anda inginkan yang penting logika login semoga sudah dapet ;-)

login_lanjut.php

Tampilan setelah berhasil login

dudu merupakan username yang dipakai untuk login.

Kode lengkap login_lanjut.php

<?php
session_start(); //kuncinya ada disini, tulis diawal script sebelum menulis yang lain
?>
<html>
<head>
<title>Buku tamu</title>
</head>
<body>
<?php
/* cek udah login pa blun */
/*
session_is_registered() sebaiknya tidak digunakan (Deprecated Function)
if( !session_is_registered( 'ID' ) || !session_is_registered( 'PASS' ) )
*/
if( !isset($_SESSION['ID']) || !isset($_SESSION['PASS']) )
{
 die( 'Illegal Acces' );
}

echo 'selamat datang <strong>' . $_SESSION['ID'] . '</strong><br>';
?>
<p><a href="logout.php">Logout</a></p>
</body>
</html>

Terakhir untuk mengakhiri sebuah session kita butuh fitur Logout.

logout.php

Tampilan setelah logout di klik

Kode lengkap logout.php

<?php
session_start(); //kuncinya ada disini, tulis diawal script sebelum menulis yang lain
?>
<html>
<head>
<title>Logout</title>
</head>
<body>
<?php
/*
session_is_registered() sebaiknya tidak digunakan (Deprecated Function)
if( session_is_registered( 'ID' ) || session_is_registered( 'PASS' ) )
*/
if( isset($_SESSION['ID']) || isset($_SESSION['PASS']) )
{
 //session_unregister( 'ID' ); Deprecated Function
 //session_unregister( 'PASS' ); Deprecated Function
 //unset( $ID, $PASS );

 // kembalikan variabel session ke kondisi null (kosong)
$_SESSION = array();

 // terakhir, hancurkan session
 session_destroy();

 echo 'Anda telah logout.!!!<br>';
 echo 'Mau <a href="login.php">login</a> lagi??';
}
else
{
 echo 'Anda belum <a href="login.php">login</a>';
}
?>
</body>
</html>

Jika sebelumnya kita memulai dengan session_start() maka untuk mengakhiri session jangan lupa gunakan session_destroy().

Jika sudah logout coba tekan tombol back pada browser untuk mencoba masuk ke login_lanjut.php apa yang terjadi ?

http://muslimpribadi.wordpress.com/2011/04/08/belajar-php-bagian-3-membuat-halaman-login-dan-logout-menggunakan-session/

Kategori:PHP
  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: