-->

Pemrograman Web Lanjut #5 - Session dan Cookie

Pembahasan Konsep Session dan Cookie, Contoh Penggunaan pada Form, serta Validasi Session.



Cookie dan Session

Pengertian Cookie

Cookie adalah sebuah nilai yang dikirimkan dan ditanamkan server pada komputer client. Biasanya informasi-informasi yang disimpan dalam cookie ini adalah informasi yang berkaitan dengan user.

Berdasarkan sifat yang telah di uraikan diatas, cookie dapat digunakan untuk:
  • Menyimpan nama pengunjung
  • Merekam daftar barang yang ingin dibeli pengunjung
  • Menyimpan pilihan-pilihan yang diatur oleh pengunjung
  • Menciptakan suatu sesi yang memungkinkan seseorang dapat masuk ke halaman-halaman lain tanpa perlu melakukan login kembali.

Cookie mempunyai umur, artinya adalah setiap data yang kita simpan dalam komputer user suatu saat bisa hilang atau musnah. Ini dikarenakan bahwa cookie mempunyai umur atau masa disimpan dalam komputer user.
Untuk membuat/menciptakan cookie, PHP menyediakan fungsi yaitu:
Setcookie(name, value, expire);

Keterangan :
  • Name, untuk nama cookie, yang mana digunakan sebagai pengenal cookie.
  • Value, berisi nilai yang akan disimpan dalam cookie.
  • Expire, waktu dimana cookie akan dihapus

Contoh menciptakan cookie adalah:
File Cookie.php
<?php 
 $value = "Catetan Informatika";
 setcookie("nama", $value, time()+3600);
 echo "Cookie telah dibentuk";
?>

Pada perintah diatas, time( ) digunakan untuk memperoleh waktu sekarang. 3600 menyatakan jumlah detik dalam 1 jam.

Untuk membaca/mengakses cookie berikut sintaknya:
$_COOKIE[“nama”];

Contoh mengakses cookie: Cek_Cookie.php
<?php
 if(isset($_COOKIE['nama'])){
  echo $_COOKIE['nama'];
 }
?>

Untuk menghapus nilai cookie gunakan setcookie() dengan menyebutkan nama cookie pada argumen pertama dan string kosong pada argumen kedua dan mengisikan nilai dari parameter expire-nya dengan satu jam yang lalu. Cara lain, argumen kedua tidak disebutkan. Berikut contohnya:
File : Hapus_Cookie.php
<?php
 setcookie("nama", time()-3600);
?>

Pengertian Session

Session adalah salah satu fasilitas yang ada pada PHP yang digunakan untuk menyimpan data sementara ke dalam variabel (variabel session) sehinga data tadi dapat di akses oleh client selama variabel session tadi tidak di kosongkan atau dihilangkan. Nilai variabel di dalam session di simpan di sisi server (web server). Berbeda dengan cookies yang nilai variabelnya disimpan di sisi client (browser). Jadi session relatif lebih aman digunakan untuk menyimpan variabel nilai yang bersifat rahasia seperti username dan password pada saat login.

  1. Mengawali Session
    Untuk menunjukkan bahwa suatu halaman menggunakan session maka
    pada awal halaman harus ada awal session yaitu dengan session_start())
  2. Penggunaan Variabel Session
    Setelah session dimulai maka variabel session sudah dapat mulai
    digunakan.
  3. Penggunaannya menggunakan format
    $_SESSION[‘nama_variabel’]
  4. Menghapus Session
    Setelah variabel session digunakan, variabel tersebut dapat dihapus.
    Banyak cara untuk menghapus session di antaranya sebagai berikut:
    • $_SESSION['nama_variabel'] = ""
      untuk memberikan atau mengganti nilai dari variabel session menjadi null atau kosong.
    • unset ($_SESSION['nama_variabel'])
      untuk menghapus sebuah variabel session.
    • session_destroy()
      untuk menghapus semua variabel session yang mungkin ada banyak variabel session yang dibuat.


Form Login

Pengimplementasian session dalam form login sebagai berikut :
Form Login : login.php
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
 <!--
 .style1 {color: #FFFFFF}
 -->
</style>
</head>
<body>
 <h3>Login Admin</h3>
 <form action="login.proses.php" method="post">
  <table width="200" border="0">
   <tr>
    <td>username</td>
    <td><input name="username" type="text"></td>
   </tr>
   <tr>
    <td>password</td>
    <td><input name="password" type="password" id="password"></td>
   </tr>
   <tr>
    <td colspan="2"><input name="submit" type="submit" value="LOGIN"></td>
   </tr>
  </table>
 </form>
</body>
</html>

FILE : login.proses.php
<?php
 session_start();
 require_once ("koneksi.php");
 // username and password sent from form
 $myusername=$_POST['username'];
 $mypassword= $_POST['password'];
 if(isset($myusername) or isset($mypassword))
  {
   if($myusername == "" or $mypassword== "")
    {?>
     <script type="text/javascript">
      alert("LOGIN SALAH, USERNAME ATAU PASSWORD TIDAK BOLEH KOSONG");
     window.location = 'login.php';
     </script>
     <?php
    }
  }
  // To protect MySQL injection (more detail about MySQL injection)
  $myusername = stripslashes($myusername);
  $mypassword = stripslashes($mypassword);
  $myusername = mysql_real_escape_string($myusername);
  $mypassword = mysql_real_escape_string($mypassword);
  $sql="SELECT * FROM admin WHERE username='".$myusername."'And password='".$mypassword."'";
  $result=mysql_query($sql);
  // Mysql_num_row is counting table row
  $count=mysql_num_rows($result);
  // If result matched $myusername and $mypassword, table row must be 1 row
  if($count==1){
   $_SESSION['user']=$myusername;
   $_SESSION['pass']=$mypassword;
   ?>
   <script language="JavaScript">alert('Selamat, Login Anda Sukses!!');
   document.location='main.php'</script> <?php
  }
  else{
  ?>
   <script type="text/javascript">
    alert("LOGIN SALAH, USERNAME ATAU PASSWORD TIDAK DITEMUKAN");
   window.location = 'login.php';
   </script>
  <?php
 }
?>

File Main.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<h3>Halaman Dashboard</h3>
<a href="destroysession.php">LOG OUT</a>
</body>
</html>

File: destroysession.php
<?php
session_start();
// atau menghapus semua session yang pernah dibuat dengan:
session_destroy();
header('Location: login.php');
?>

Validasi session
<?php
if(isset($_SESSION['sesi1']) &&
$_SESSION['ses12']=='admin'){
}else{
echo "<script>window.location='../';</script>";
}
?>
Load Comments

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel