Membuat halaman login dan logout menggunakan session (Belajar PHP 3 )

Pada bahasan materi kemarin kita telah membuat Halaman Daftar dan mari kita teruskan dengan membuat Halaman Loginya

Pada tutorial buku tamu kali ini kita akan membuat 4 file PHP :
  1. login.php halaman antar-muka login 
  2. login_proses.php halaman tujuan setelah menekan tombol Log in, disini akan dilakukan validasi dan pencocokan dengan data di tabel user_nya.
  3. login_lanjut.php jika semua data valid user akan di bawa ke halaman ini, terdapat
    ucapan selamat datang dan sebuah link Logout. 
  4. logout.php merupakan tindak lanjut setelah link Logout di klik.
Halaman login.php

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



<html>

<head>

<title>Login</title>

</head>

<body>

<h1>LOGIN</h1>

<table>

<form action="login_proses.php">

<tr>

<td>User Id</td>

<td><input type="text" name="user_id" maxlength="255" size="20"></td>

</tr>

<tr>

<td>Password</td>

<td><input type="password" name="pass" maxlength="255" size="20"></td>

</tr>

<tr>

<td></td>

<td><input type="submit" value="Log in"></td>

</tr>

</form>

</table>

</body>




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

Kode lengkap login_proses.php
<?php
session_start(); //kuncinya ada disini, tulis diawal script sebelum menulis
yang lain

$server = 'localhost';
$user_db = 'root';
$password_db = '';
$nama_db = 'bukutamu';

/* Koneksi database*/
mysql_connect( $server, $user_db, $password_db ) or die( mysql_error() );
mysql_select_db( $nama_db ) or die( mysql_error() );

/* Ambil variabel */ 

$user_id = $_REQUEST['user_id'];
$pass = $_REQUEST['pass'];

/* Validasi */
$error = 0;
if( empty( $user_id ) || empty( $pass ) )
{
 echo 'Tidak boleh ada kolom yang kosong.<br>';
 $error++;
}
else
{
 $sql = 'select * from USER_NYA where USER_ID="' . $user_id . '"';
 $query = mysql_query( $sql );
 $row = mysql_fetch_row( $query );

 if( empty( $row[0] ) )
 {
  echo 'User tidak dikenal.<br>';
  $error++;
 }
 else
 {
  if( $row[1] != $pass )
 {
  echo 'Password salah.<br>';
  $error++;
 }
 else
 {
  /*Daftarkan ke server sbg variabel global*/
  /* session_register() Sebaiknya tdk digunakan (Deprecated Function)
  session_register( 'ID', 'PASS' );
  */ 

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

if( $error == 0 )
{
 /* Redirect jika tidak ada error */
 header( 'Location:login_lanjut.php' );
 exit();
}
else
{
 echo '<a href="login.php">Kembali</a>';
 exit();
}
?>
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 
if( empty( $row[0] ) )
 
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.
$sql = 'select * from USER_NYA where USER_ID="' . $user_id . '"';
$query = mysql_query( $sql );

$row = mysql_fetch_row( $query );
Kode mulai baris 26 sampai 28 menunjukan bahwa terjadi pemanggilan data ke
tabelUSER_NYA yang memiliki USER_ID sama dengan nilai yang dikandung dari variabel $user_id

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 kolomPASS, begitu seterusnya. 

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  

+ komentar + 1 komentar

25 Januari 2014 pukul 00.51

Thanks bantuan artikelnya

Posting Komentar

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. IlmuProgrammer - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger