Saturday, January 24, 2009

BELAJAR PHP


again author try to pay debt. : d. debt hits tutorial that discuss redirect yard complexly. before aim discussion kernel, author will give what explanation and how does example case from redirect yard complexly this.
mybe there some people ever try searching at google hit article he looks for, but when get article, web only permit user that egistrasi that can accessing article. so, step furthermore that done by user register self to be member in website, in form the yard location differs from article that looked for. but after registration process finished, and process loggings success, user automatically at redirect to yard he goes to previous. this little example from redirect complex. another example, when does user that will try to will downloaded a file on page certain at a website, user compelled to logging beforehand, but after logging direct user meredirect automatically aim yard downloads. : d. in tutorial this, author will try to answer that various problem. bye . . bye. .:D

prepare first of all the database:

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 :
<?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 :

<html>
<head><title>Login Page ...!</title></head>
<body>
<form action=cek.php method=POST>
<table border=0 bcolor=#DFDFDF><tr><td>username</td><td><input type=text name=username></td></tr>
<tr><td>password</td><td><input type=password name=password></td></tr>
<tr><td></td><td><input type=submit name=submit value=submit></td></tr>
</table>
</form>
</body>
</html>

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

<?php
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 :

<?php
session_start();
require_once "config.php";
if (!ISSET($_REQUEST['id']) )
{
    $list_article = "select * from article";
    $query_list_article = mysql_query($list_article);
    echo "<h3>Article Today</h3>";    
    if (ISSET($_SESSION['user']))
    {
        echo "</p><b>Welcome back User</b>. Do you want <a href=logout.php>logout</a> ? :D~~ </p>";
    }
    
    
    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 "<b>$judul</b><br>
              Oleh : $penulis<br>
              <p>$isi_fix <a href=index.php?view=page&id=$id>selengkapnya</a></p>
              <hr width=45% align=left>";
              
    }
}

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

    $id = $_REQUEST['id'] ;
    if (!ISSET($_SESSION['user']))
        {
        $_SESSION['halaman'] = $id ;
        echo "Login dulu dong <a href=login.php>di sini</a>";
        }
        
    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 "<h3>Article Today</h3>";
            echo "<b>$judul</b><br>
                    Oleh : $penulis<br>
                    <p>$isi</p>
                    <hr width=100% align=left>";
              
            }
            
            echo "<a href=index.php?view=page>Kembali...</a>";
        }
    
}

?>


Terakhir adalah, file logout.php :

<?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 <a href=login.php>di sini</a>";
        }
        

...

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 <a href=login.php>di sini</a>";
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 "<h3>Article Today</h3>";
            echo "<b>$judul</b><br>
                    Oleh : $penulis<br>
                    <p>$isi</p>
                    <hr width=100% align=left>";

....

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.


Sumber dari situs Ilmu Website dalam kategori php kuliah dengan judul Redirect Halaman Kompleks