w w w w

baner
Anda ada di Halaman:   Home Basis Web Pemrograman PHP Membuat Aplikasi web dengan fasilitas Sign in & Sign out (bagian 1)
Membuat Aplikasi web dengan fasilitas Sign in & Sign out (bagian 1) PDF Print E-mail
Written by Hendrik Perdana   
Sunday, 27 September 2009 18:56


Banyak website atau aplikasi web di internet yang menggunakan fasilitas pendaftaran dengan Sign in dan Sign out. Fungsinya tentu saja membatasi akses terhadap layanan tertentu yang disediakan pada situs tersebut. Hanya anggota yang telah terdaftar saja yang diijinkan mengakses layanan-layanan khusus tersebut. Kali ini kita akan membahas bagaimana membuat aplikasi yang memiliki fasilitas Sign in/Sign out. Yang dibahas di sini adalah halamannya saja, sedangkan isi aplikasi yang terletak di dalamnya bisa Anda kembangkan sendiri.

Dalam pembuatan aplikasi ini kita membutuhkan database yang akan menyimpan data-data dari para anggota yang telah terdaftar. Buatlah database dengan MySQL sebagai berikut:

mysql> create database user;

mysql> create table tbl_user(
    -> username varchar(20),
    -> passwd varchar(32));

Database tersebut terdiri dari satu tabel bernama “tbl_user” dan tabel tersebut memiliki 2 buah field yaitu username dan passwd untuk menyimpan password. Mengapa field passwd ditentukan untuk memiliki 32 karakter? Kita akan bahas nanti.

Sekarang mula-mula kita akan buat dahulu halaman pendaftaran anggota. Skripnya adalah sebagai berikut:

<HTML>
<HEAD>
<TITLE> Sign Up Page</TITLE>
</HEAD>
<BODY>
Isilah username dan password yang Anda inginkan <br />
<PRE>
<FORM NAME="SignUp" METHOD="post" ACTION="signup_process.php">
Username    : <INPUT TYPE="text" NAME="username">
Password    : <INPUT TYPE="password" NAME="passwd">
<br />
<INPUT TYPE="submit" VALUE="Submit">
</FORM>
</BODY>
</HTML>

Simpanlah skrip ini dengan nama signup.php atau signup.htm pun boleh karena pada kenyataannya tidak ada skrip php pada file ini.
Berikutnya kita akan membuat file signup_process.php yang akan memproses pendaftaran yang akan user lakukan. Skripnya adalah sebagai berikut:

<HTML>
<HEAD>
<TITLE> Processing your Account </TITLE>
</HEAD>
<BODY>

<?php
$username = $_POST['username'];
$passwd = md5($_POST['passwd']);
$host = "localhost";
$db_user = "root";
$db_passwd = "root";
$db = "user";
$stop = 0;
$sql = "select username from tbl_user";
$conn = @mysql_connect($host,$db_user,$db_passwd) or
    die("Koneksi gagal : " . mysql_error());
mysql_select_db($db);
$qry = mysql_query($sql) or
    die("Query salah : " . mysql_error());
while ($row = mysql_fetch_array($qry)) {
    if ($username == $row['username']) {
        echo "Username $username was already chosen by someone else <br />";
        echo "Go back and choose another username";
        $stop = 1;
        break;
    }
}
if ($stop==0) {
    $sql = "insert into tbl_user values ('$username','$passwd')";
    $qry = mysql_query($sql) or
        die("Query salah : "  . mysql_error());
    echo "Your account is successfully created <BR>";
    echo "<A href='login_page.php'> Click here </A> to login Page";
}
?>

</BODY>
</HTML>

Patut diperhatikan bahwa pada baris kedua skrip php (setelah bagian <BODY>) terdapat fungsi md5. Fungsi md5 merupakan fungsi yang menghitung md5 hash dari suatu string. Md5 hash menghasilkan 32 karakter dalam format heksadesimal. Itulah sebabnya mengapa field passwd dibuat bertipe data karakter dengan panjang 32 karakter. Dengan md5 hash ini password Anda akan disimpan dalam bentuk yang sangat sulit ditebak dan apabila anda lupa dengan password anda maka password tidak dapat di decode seperti halnya base64encode.

Pada skrip ini mula-mula diperiksa apakah username yang dipilih telah ada di dalam database. Jika telah ada, maka php akan memberikan peringatan bahwa username tersebut telah ada dan Anda dipersilakan membuat username baru. Jika belum ada, maka informasi username dan password Anda akan didaftarkan ke dalam database dan Anda akan diberitahu bahwa account Anda telah dibuat.

Setelah proses sign up berhasil, kini kita akan membuat halaman untuk login. Skripnya adalah sebagai berikut:

<HTML>
<HEAD>
<TITLE> Login Page </TITLE>
</HEAD>
<BODY>
Please Login: <br />
<PRE>
<FORM NAME="login" METHOD="post" ACTION="login_process.php">
Username : <INPUT TYPE="text" NAME="username">
Password : <INPUT TYPE="password" NAME="passwd">
<br />
<INPUT TYPE="submit" VALUE="Submit">
</FORM>
</PRE>
New user please register<A href="/signup.php"> here </A>
</BODY>
</HTML>

Simpanlah file ini dengan nama login.php atau login.htm.
Skrip ini akan diolah pada file login_process.php. Nah, skrip dari file login_process.php adalah sebagai berikut:

<HTML>
<HEAD>
<TITLE> Authentification Page </TITLE>
</HEAD>
<BODY>
<?
$username = $_POST['username'];
$passwd = md5($_POST['passwd']);
$host = "localhost";
$db_user = "root";
$db_passwd = "root";
$db = "user";
$stop = 0;
$sql = "select * from tbl_user where username='$username'";
$conn = @mysql_connect($host,$db_user,$db_passwd) or
    die("Koneksi gagal : " . mysql_error());
mysql_select_db($db);
$qry = mysql_query($sql) or
    die("Query salah : " . mysql_error());
$num = mysql_num_rows($qry);
$row = mysql_fetch_array($qry);

if ($num==0) {
    echo "Username not found <br />";
    echo "Go back and try another username";
} else {
    if ($passwd!=$row['passwd']) {
        echo "Your password is invalid <br />";
        echo "Go back and type the valid password";
    } else {
        echo "You are successfully logged in";
    }
}
?>
</BODY>
</HTML>

Nah sekian skrip dengan fasilitas Sign in dan sign out, selamat belajar.