PHP Talk: Session Management Part 1

Session adalah semi permanen pertukaran data interaktif yang berada di antara dua device yang sedang berkomunikasi. Session biasanya dipakai untuk mengetahui informasi pengunjung pada suatu website. Session yang digunakan untuk login dan exist sampai user yang bersangkutan logout disebut Login Session.

Kali ini saya akan mencoba memberikan sedikit pencerahan tentang penggunaan Session dalam PHP khususnya Login Session. Untuk dapat melakukan login kita memerlukan database dimana terdapat data username dan password yang diperlukan untuk login.

1. Membuat database untuk member

Buatlah database dengan nama session. Jika anda belum menerti cara pembuatan database, silahkan kunjungi artikel berikut XAMPP Talk: How To Make A Database and Table on MySQL. Setelah itu, copykan query SQL berikut kedalam phpmyadmin SQL Compiler.

CREATE TABLE IF NOT EXISTS `member` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `username` varchar(50) NOT NULL,  `password` varchar(32) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `member` (`id`, `username`, `password`) VALUES(1, 'guest', 'secret');

Query diatas digunakan untuk membuat table member dengan field(id, username dan password), setelah itu memasukan data dengan nilai id = 1, username = guest, password = secret. Sudah? ok mari lanjut.

2. Membuat folder simulasi website

Sekarang kunjungi c:\xampp\htdocs\, buatlah folder dengan nama tutorialsession. Buatlah 4 file .php, berikan nama masing-masing(index.php, config.php, loginpage.php dan login.php)

  • index.php digunakan sebagai homepage dimana ketika kita mengakses alamat http:/localhost/tutorialsession maka file ini yang akan pertama kali tereksekusi.
  • config.php digunakan untuk membuat koneksi ke server database
  • loginpage.php digunakan sebagai form untuk login.
  • login.php digunakan untuk membandingkan data yang diberikan di form dengan data yang ada di database. Setelah itu session dijalankan.

3. Membuat home page

Isikan file index.php dengan script berikut.

<?php session_start();

if (!isset($_SESSION[‘username’])) {

header(“Location: loginpage.php”);

}else{

echo “You’re login as “.$_SESSION[‘username’].”.”;

}?>

File php diatas pertama-tama mengecek value dari variabel username pada session yang sedang berjalan. Jika tidak ada maka header(alamat page) akan dipindahkan ke loginpage.php selain itu maka akan tertampilkan “Hellooo.. namauser”.

4. Membuat koneksi ke database.

Pembuatan koneksi ini sama dengan pembuatan koneksi di artikel saya yang terdahulu. Isikan config.php persis dengan tutorial berikut: PHP Talk: How to make and close Connection to MySQL Server.

5. Membuat form login

Isikan file loginpage.php dengan script berikut:

<h2><?php session_start();

if (!isset($_GET[‘status’])) {

echo “Silahkan login..”;

}else{ echo “Maaf, password atau username salah..”; }

?></h2>

<form method=”POST” action=”login.php”>

<div><p>Username: <input type=”text” name=”username” size=”50″></p></div>

<div><p>Password: <input type=”password” name=”password” size=”32″></p></div>

<div><input type=”submit” value=”Submit”/></div>

</form>

Script diatas pertama akan memeriksa apakah ada value di variabel status dalam method GET yang dikirim oleh page sebelumnya. Jika tidak ada maka php akan mengembalikan nilai “Silahkan login…”. Selain itu makan akan mengembalikan nilai  “Maaf, password atau username salah..”. Nilai balikan PHP tersebut akan menjadi value dari tag h2 pada html. Setelah itu terdapat pembuatan form yang digunakan untuk memasukan username dan password.

6. Pembuatan proses login dan proses inisialisasi session

Isikan file login.php dengan script berikut:

<?php

session_start();

include “config.php”;

$user = $_POST[‘username’];

$password = $_POST[‘password’];

mysql_select_db(“session”, $con) or die(“Databasenya Error”);

if($login = mysql_query(“select * from member where username = ‘$user’ and password =  ‘$password'”)){

if(mysql_num_rows($login)==1)

{

$row = mysql_fetch_array($login,MYSQL_BOTH);

$_SESSION[‘username’] = $row[‘username’];

header(“Location: index.php”);

}

else

{

header(‘Location: loginpage.php?status=1’);

}

}

else

{

header(‘Location: loginpage.php?status=0’);

}

?>

Script PHP diatas pertama-tama memasukan script yang ada dalam config.php untuk membuat koneksi ke server MySQL. Setelah itu variable user dan password di ambil dari value form sebelumnya. Dikarenakan form sebelumnya menggunakan method POST maka pengambilan datanya juga dengan method POST dengan parameter sesuai dengan name disetiap textfieldnya.

Pada script selanjutnya dilakukan pemilihan database dengan nama session. Setelah itu dilakukan perbandingan input user dengan data yang ada dalam database dengan mengunakan SQL Query yang hasilnya ditampung dalam variabel login. Jika berhasil maka script akan memeriksa lagi apakah jumlah baris dalam table yang diterima sama dengan satu?. Jika benar, variable row akan mengambil baris yang pertama dari hasil table tersebut dengan menggunakan mysql_fetch_array. Pada script selanjutnya terdapat pembuatan variable username yang diset dengan nilai field username dari  baris pertama di variabel row. Lalu page dialihkan ke index.php

Jika proses perbandingan gagal, maka page akan dialihkan ke loginpage.php?status=0. Jika jumlah row tidak sama dengan 1 maka page akan dialihkan ke loginpage.php?status=1. ?status=1 atau ?status=o adalah cara pendefinisian method GET pada php.

Sekarang buka page http:/localhost/tutorialsession, isikan username dengan guest dan password secret. Jika berhasil login, maka “Hellooo.. guest” akan tertampil di page index.php anda.

Yup, Selamat! anda telah berhasil mengikuti setengah dari tutorial ini.

Anda bisa mendukung saya untuk tetap melakukan update tutorial dengan cara mem-follow blog saya, atau mem-follow twitter saya disini, bisa juga dengan meninggalkan komentar dan atau me-request tutorial yang anda inginkan. Best regards, eSDhee

Advertisements

8 thoughts on “PHP Talk: Session Management Part 1

  1. Pingback: MySQL Talk: Password Encryption and Hashing « eSDhee weBlog

  2. Pingback: PHP Talk: Session Management Part 2 « eSDhee weBlog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s