Dalam tutorial kali ini, kita akan belajar cara-cara membuat log masuk dan log keluar dengan menggunakan PHP + MySql + Cookies.

Perkara yang diperlukan dalam proses pembelajaran ini ialah:

  1. Server PHP + MySQL (Membuat server PHP sendiri dengan WAMP)
  2. Kesabaran

Perkara pertama yang perlu anda lakukan adalah membuat satu jadual dalam pangkalan data anda untuk menyimpan nama pengguna dan juga kata laluan. Dalam tutorial ini, kita akan membuat 3 field iaitu nama_pengguna, kata_laluan dan juga ID. Walau bagaimanapun, anda boleh menambah bilangan filed bergantung kepada keperluan anda.

Masukkan arahan SQL ini dengan menggunakan phpMyAdmin.

CREATE TABLE ahli (
  ID MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  nama_pengguna VARCHAR(60), kata_laluan VARCHAR(60)
);

[ header = Koding untuk Daftar ]

Simpan koding ini dalam daftar.php

<?php
// Connects to your Database
mysql_connect("namahostinganda.com", "nama_pengguna", "kata_laluan") or die(mysql_error());
mysql_select_db("Database_Name") or die(mysql_error());

//Koding ini akan diproses jika butang hantar di klik.
if (isset($_POST['submit'])) {

  //Pastikan tiada rungan kosong dalam kotak input
  if (!$_POST['nama_pengguna'] | !$_POST['pass'] | !$_POST['pass2'] ) {
    die('Anda tertinggal ruangan kosong.');
  }

  // koding untuk memeriksa kewujudan nama pengguna
  if (!get_magic_quotes_gpc()) {
    $_POST['nama_pengguna'] = addslashes($_POST['nama_pengguna']);
  }
  $usercheck = $_POST['nama_pengguna'];
  $check = mysql_query("SELECT nama_pengguna FROM ahli WHERE nama_pengguna = '$usercheck'")
    or die(mysql_error());
  $check2 = mysql_num_rows($check);

 

  //koding untuk memaparkan kewujudan nama_pengguna
  if ($check2 != 0) {
    die('Maaf, Nama pengguna '.$_POST['nama_pengguna'].' telah pun dipilih.');
  }

  // memastikan kedua-duakan kata laluan adalah sama
  if ($_POST['pass'] != $_POST['pass2']) {
    die('Kata laluan anda tidak sama.
  }

  // proses untuk melindungi kata_laluan
  $_POST['pass'] = md5($_POST['pass']);
  if (!get_magic_quotes_gpc()) {
    $_POST['pass'] = addslashes($_POST['pass']);
    $_POST['nama_pengguna'] = addslashes($_POST['nama_pengguna']);
  }

  // masukan data dalam pangkalan data
  $insert = "INSERT INTO ahli (nama_pengguna, kata_laluan)
  VALUES ('".$_POST['nama_pengguna']."', '".$_POST['pass']."')";
  $tambah_ahli = mysql_query($insert);
?>

 

<h1>Didaftar</h1>
  <p>Terima kasih, anda boleh log masuk sekarang</a>.</p>
<?php
}
else
{
?>

 

<form action="https://www.drupalnote.my/%3C?php_echo_%24_SERVER[%27PHP_SELF%27]=" method="post">
<table border="0">
  <tr><td>nama_pengguna:</td><td>
    <input type="text" name="nama_pengguna" maxlength="60">
  </td></tr>
  <tr><td>Kata_laluan:</td><td>
    <input type="kata_laluan" name="pass" maxlength="10">
  </td></tr>
  <tr><td>Memastikan kata_laluan:</td><td>
    <input type="kata_laluan" name="pass2" maxlength="10">
  </td></tr>
  <tr><th colspan=2><input type="submit" name="submit" value="Daftar"></th></tr> </table>
</form>

 

<?php
}
?>

[ header = Koding untuk Log masuk ]

Simpan koding ini dalam fail logmasuk.php

<?php
// meyambungkan kepada pangkalan data.
mysql_connect("namahostanda.com", "nama_pengguna", "kata_laluan") or die(mysql_error());
mysql_select_db("Nama_Pangkalan_Data") or die(mysql_error());

//Memeriksa kehadiran cookies
if(isset($_COOKIE['ID_web_saya']))

//Jika anda pengguna anda dilog masuk terus.
{
  $nama_pengguna = $_COOKIE['ID_web_saya'];
  $pass = $_COOKIE['Kunci_web_saya'];
  $check = mysql_query("SELECT * FROM ahli WHERE nama_pengguna = '$nama_pengguna'")
    or die(mysql_error());
  while($info = mysql_fetch_array( $check ))
  {
  if ($pass != $info['kata_laluan'])
    {
    }
  else
    {
    header("Location: ahli.php");
    }
  }
}

 

//periksa jika butang hantar diklik
if (isset($_POST['submit'])) {
  // jika borang telah dihantar
  // pastikan pengguna mengisi kesemua ruangan
  if(!$_POST['nama_pengguna'] | !$_POST['pass']) {
    die('Anda meninggalkan ruangan kosong.');
  }
  // periksa dalam pangkalan data

  if (!get_magic_quotes_gpc()) {
    $_POST['email'] = addslashes($_POST['email']);
  }
  $check = mysql_query("SELECT * FROM ahli WHERE nama_pengguna = '".$_POST['nama_pengguna']."'")
    or die(mysql_error());

 

  //Ralat jika user tidak wujud
  $check2 = mysql_num_rows($check);
  if ($check2 == 0) {
    die('Nama pengguna tidak wujuk.. <a href=daftar.php>Sila daftar.</a>');
  }
  while($info = mysql_fetch_array( $check ))
  {
    $_POST['pass'] = stripslashes($_POST['pass']);
    $info['kata_laluan'] = stripslashes($info['kata_laluan']);
    $_POST['pass'] = md5($_POST['pass']);
    //Ralat jika kata laluan salah
    if ($_POST['pass'] != $info['kata_laluan']) {
      die('Kata laluan salah, cuba lagi');
    }
    else
    {

    // Jika berjaya masuk, bina cookies
    $_POST['nama_pengguna'] = stripslashes($_POST['nama_pengguna']);
    $hour = time() + 3600;
    setcookie(ID_web_saya, $_POST['nama_pengguna'], $hour);
    setcookie(Kunci_web_saya, $_POST['pass'], $hour);

    //membawa pengguna kebahagian ahli.
    header("Location: ahli.php");
    }
  }
}
else
{

 

// Jika pengguna tidak log masuk
?>

<form action="https://www.drupalnote.my/%3C?php_echo_%24_SERVER[%27PHP_SELF%27]=" method="post">
<table border="0">
  <tr><td colspan=2><h1>Log Masuk</h1></td></tr>
  <tr><td>Nama_pengguna:</td><td>
    <input type="text" name="nama_pengguna" maxlength="40">
  </td></tr>
  <tr><td>Kata_laluan:</td><td>
    <input type="kata_laluan" name="pass" maxlength="50">
  </td></tr>
  <tr><td colspan="2" align="right">
    <input type="submit" name="submit" value="Log Masuk">
  </td></tr>
</table>
</form>
<?php
}

?>

[ header =Koding untuk Bahagian Ahli ]

Simpan koding ini dalam fail ahli.php.

<?php
// Menyambung kepada pangkalan data
mysql_connect("your.hostaddress.com", "nama_pengguna", "kata_laluan") or die(mysql_error());
mysql_select_db("Nama_pangkalan_data") or die(mysql_error());

//Memeriksa cookies
if(isset($_COOKIE['ID_my_site']))
{
  $nama_pengguna = $_COOKIE['ID_web_saya'];
  $pass = $_COOKIE['Kunci_web_saya'];
  $check = mysql_query("SELECT * FROM ahli WHERE nama_pengguna = '$nama_pengguna'")
    or die(mysql_error());
  while($info = mysql_fetch_array( $check ))
  {

  //Jika cookies tidak wujud, pengguna akan dibawa kebahagian log masuk.
  if ($pass != $info['kata_laluan'])
    {
    header("Location: logmasuk.php");
    }

  //Jika tidak, pengguna akan dibawa ke area ahli
  else
    {
    echo "Bahagian Ahli<p>";
    echo "Isi Kandungan<p>";
    echo "<a href=logkeluar.php>Log Keluar</a>";
    }
  }
}
else

//Jika cookies tidak wujud, pengguna akan dibawa kebahagiah log masuk
{
  header("Location: logmasuk.php");
}
?>

[ header = Koding untuk Log Keluar ]

Simpan Koding ini dalam logkeluar.php

<?php
$past = time() - 100;
//memusnahkan cookies
setcookie(ID_web_saya, gone, $past);
setcookie(Kunci_web_saya, gone, $past);
header("Location: logmasuk.php");
?>
Penilaian: 
Your rating: None Average: 4 (1 vote)