Tuesday, December 30, 2008

Redirect Halaman Kompleks

Lagi-lagi penulis coba untuk membayar hutang. :D. Hutang mengenai tutorial yang membahas redirect halaman secara kompleks. Sebelum menuju inti pembahasan, penulis akan beri penjelasan apa dan bagaimana contoh kasus dari redirect halaman secara kompleks ini.
Mungkin ada sebagian orang yang pernah mencoba searching di google mengenai artikel yang dia cari, namun ketika mendapatkan artikel tersebut, web tersebut hanya membolehkan user yang sudah teregistrasi saja yang dapat mengakses artikel tersebut. Maka, langkah selanjutnya yang dilakukan oleh user tersebut adalah meregistrasikan dirinya untuk menjadi member pada website tersebut, pada form yang letak halamannya berbeda dengan artikel yang dicari. Namun setelah proses registrasi selesai, dan proses login berhasil, user secara otomatis di redirect ke halaman yang dia tuju sebelumnya. Ini adalah contoh kecil dari redirect kompleks. Contoh lainnya, ketika user yang akan mencoba untuk mendownload sebuah file pada halaman tertentu di suatu website, user tersebut diharuskan untuk login terlebih dahulu, tapi setelah login user langsung diredirect secara otomatis menuju halaman download. :D. Pada tutorial kali ini, penulis akan coba jawab itu berbagai persoalan tersebut. Mari .. mari ... :D

Ya, persiapkan terlebih dulu databasenya :

create database simple_cms ;
use simple_cms ;
create table user( id int(5) PRIMARY KEY auto_increment, username varchar(20), password varchar(50));
create table article (id int(5) PRIMARY KEY auto_increment, penulis varchar(20), judul varchar(200), isi text);

insert into user values ('','admin',md5('admin'));
insert into article values('','Loka Dwiartara','Kegantengan Abadi','Kegantengan abadi terpancar dari kekerenan sejati. Aura kegantengan selalu terpancar dari kerennya seseorang. :D. Kadang banyak yang berpikir keindahan secara fisik itu melebihi dari segalanya. Kita tahu bahwa b_scorpio itu tidak ganteng, tapi setidaknya tolong hargai dia :D'), ( '','Loka Dwiartara','PHP is powerfull easy language ... ', 'Kekerenan php dalam menangani pengembangan sistem informasi berbasis website patut di acungi 4 jempol kaki dan tangan, kehebatannya melebihi b_scorpio yang tidak pandai menggaet i#a, wanita yang dia suka. ;D~~~, peace ... damai ... ') ;

Selanjutnya, config.php :

$host = "localhost";
$username = "root";
$password = "";
$database = "simple_cms" ;

$connect = mysql_connect($host, $username, $password);
mysql_select_db( $database , $connect) or die ("MySQL is error!!");
?>

Kemudian, halaman login.php :






username
password






Selanjutnya, file cek.php, disinilah redirect kompleks halaman berada :


session_start();
require_once "config.php";

if (ISSET($_POST['username']) && ISSET($_POST['password']) )
{
$username = $_POST['username'];
$password = md5($_POST['password']);
$session_halaman = $_SESSION['halaman'];

$cekuser = "select username, password from user where username = '$username' and password = '$password'";
$query_cekuser = mysql_query($cekuser);
$exist = mysql_num_rows($query_cekuser);

if ($exist >= 1)
{
$_SESSION['user'] = session_id();
header("location: index.php?view=page&id=$session_halaman");
}

else
{
header("location: login.php");
}

}

?>

Dan halaman index.php, untuk menampilkan artikelnya :


session_start();
require_once "config.php";
if (!ISSET($_REQUEST['id']) )
{
$list_article = "select * from article";
$query_list_article = mysql_query($list_article);
echo "

Article Today

";

if (ISSET($_SESSION['user']))
{
echo "

Welcome back User. Do you want logout ? :D~~

";

}


while ($showlist = mysql_fetch_array($query_list_article))
{
$id = $showlist['id'];
$penulis = $showlist['penulis'];
$judul = $showlist['judul'];
$isi = $showlist['isi'];
$panjangartikel = strlen($isi);
$isi_dipotong = substr($isi, 0, 60);
$isi_fix = substr($isi, 0, strrpos($isi_dipotong, " "));
$isi_fix .= "...";

echo "$judul

Oleh : $penulis

$isi_fix selengkapnya



";


}
}

else if (ISSET($_REQUEST['view']) && ISSET($_REQUEST['id']) )
{

$id = $_REQUEST['id'] ;
if (!ISSET($_SESSION['user']))
{
$_SESSION['halaman'] = $id ;
echo "Login dulu dong di sini";
}

else
{
$list_article = "select * from article where id = '$id' ";
$query_list_article = mysql_query($list_article);

while ($showlist = mysql_fetch_array($query_list_article))
{
$id = $showlist['id'];
$penulis = $showlist['penulis'];
$judul = $showlist['judul'];
$isi = $showlist['isi'];

echo "

Article Today

";

echo "$judul

Oleh : $penulis

$isi



";


}

echo "Kembali...";
}

}

?>


Terakhir adalah, file logout.php :


session_start();
unset($_SESSION['user']);
session_destroy();
header("location: index.php");
?>

Hmmm.. panjang juga scriptnya. :D~ Penulis coba jelaskan beberapa baris yang penting saja. Lihat ke halaman index.php, di situ terdapat baris seperti ini :

....
else if (ISSET($_REQUEST['view']) && ISSET($_REQUEST['id']) )
{

$id = $_REQUEST['id'] ;
if (!ISSET($_SESSION['user']))
{
$_SESSION['halaman'] = $id ;
echo "Login dulu dong di sini";
}


...

else if (ISSET($_REQUEST['view']) && ISSET($_REQUEST['id']) )
Ini berarti, jika user mengklik salah satu artikel di halaman index,

if (!ISSET($_SESSION['user']))
dan jika user belum login,

$_SESSION['halaman'] = $id ;
maka, rekam halaman yang akan dibuka, simpan halaman tersebut ke dalam variable session.

echo "Login dulu dong di sini";
Persilahkan user untuk login dulu.

Nah selanjutnya, jika user telah login maka artikel langsung di perlihatkan seluruhnya, seperti pada baris ini

....
else
{
$list_article = "select * from article where id = '$id' ";
$query_list_article = mysql_query($list_article);

while ($showlist = mysql_fetch_array($query_list_article))
{
$id = $showlist['id'];
$penulis = $showlist['penulis'];
$judul = $showlist['judul'];
$isi = $showlist['isi'];

echo "

Article Today

";

echo "$judul

Oleh : $penulis

$isi



";


....

Kemudian untuk script cek.php

if (ISSET($_POST['username']) && ISSET($_POST['password']) )
Jika user telah mengisi password dan username,

....

$cekuser = "select username, password from user where username = '$username' and password = '$password'";
maka buat sebuah query yang akan menyeleksi apakah username dan passwordnya ada.

...

$query_cekuser = mysql_query($cekuser);
Jalankan querynya ...

$exist = mysql_num_rows($query_cekuser);
Apakah username dan password yang dimasukkan tersebut ada dalam database?

if ($exist >= 1)
{
Jika ada,

$_SESSION['user'] = session_id();
maka buat session baru untuk user

header("location: index.php?view=page&id=$session_halaman");
Redirectkan si user ke halaman yang dia tuju sebelumnya ... Ya, disinilah letak dari redirect kompleksnya. :D. Cukup manfaatkan saja session yang ada untuk meredirect user ke halaman yang dituju.

}

else
{
header("location: login.php");
jika username dan password salah, persilahkan user untuk login ulang.

}

}
Untuk screenshoot demonya seperti ini :


Ini adalah halaman pertama kali


Ketika salah satu link akan diklik, maka user diperintahkan untuk login terlebih dahulu


Setelah login berhasil maka user secara otomatis langsung di redirect ke halaman tujuan yang awal.


Yup, penulis kira sudah cukup jelas untuk redirect kompleks. Jika ada yang ditanyakan silahkan kirim email ke alkemail@gmail.com. Selamat mencoba.

Script tersebut dapat di download di sini
http://networkandgame.890m.com/ilmuwebsite/article/redir-complex-by-alk.zip

Greetz : b_scorpio, abuzahra, peterpanz, kandar, phii_, syahrilrohman, ivan, dr.emi, safril, najwa. Special for jojo. :). Hi, Jo! Have a nice day.

No comments:

Post a Comment