Tuesday, February 7, 2017

Belajar Session Pada PHP

PENERAPAN SESSION PADA PHP

Session Pada PHP, bermula saat halaman browser dibuka dan terus berlangsung hingga ditutup kembali. Berbeda dengan cookies pada PHP yang menyimpan informasinya pada komputer user, Session Pada PHP menyimpan informasinya pada server.


Variabel-variabel session menyimpan informasi tentang user untuk digunakan menyeberangkan informasi tersebut ke berbagai halaman web. Secara default, variabel-variabel session berakhir hingga user menutup browser. akan tetapi jika ingin menyimpan informasi dari session maka database dapat digunakan untuk mengabadikan informasi tersebut.

Memulai Session dari PHP

Fungsi bawaan PHP, session_start() digunakan untuk Memulai Session. Sedangkan untuk menyimpan informasi pada session digunakan varabel global $_SESSION.
  • Setelah Memulai Session, Script server mengirimkan informasi yang telah didefinisikan pada session ke browser.
  • Browser menyimpan informasi tersebut pada server untuk digunakan pada waktu selanjutnya.
  • Saat user berkunjung kembali server akan mendapatkan kembali informasi session dari server untuk identifikasi selanjutnya.

Mengambil Nilai Session Pada PHP

halaman web akan Mendapatkan Nilai Session kembali jika session telah dibuka pada awal halaman melalui session_start() dan telah disimpan pada variabel $_SESSION. Dengan pernyataan print_r($_SESSION) kita dapat memperlihatkan nilai-nilai pada varibel session, yang berupa array tersebut.

Mengubah Session Pada PHP

Mengubah Session dapat dilakukan dengan menimpa nilai variabel session yang lama dengan nilai yang baru.

Menghapus Variabel Session Pada PHP

Menghapus Session secara keseluruhan dapat dilakukan dengan menerapkan session_unset() atau session_destroy(). Untuk menghapus satu variabel session gunakan unset($_SESSION['"nama_vaiabel"]);.

Contoh Membuat Session

Membuat Session dilakukan dengan terlebih dahulu Memulai Session menggunakan Fungsi session_start pada bagian awal halaman. Pada contoh berikut ini variabel Session Pada PHP, akan menyimpan nilai nama dan alamat yang didefinisikan pada vaiabrel $_SESSION, kemudian nilai tersebut akan diambil kembali pada contoh selanjutnya:
<?php
   // memulai session
   session_start();
<?
<!DOCTYPE html>
<html>
<body>

<?php
   // membangun variabel session 
   $_SESSION['nama']= "Pengunjung1";
   $_SESSION['waktu']= time();
   echo "<p>Variabel Session telah dibentuk</P>";
?>

</body>
</html>
Hasil Dari Session Di atas Adalah
Variabel Session telah dibentuk

Catatan: Tautan hasil pada contoh berikutnya, 'Mendapatkan Nilai Session', berguna untuk menampilkan nilai session.



Contoh Mendapatkan Nilai Session

Contoh ini akan Mendapatkan Nilai Session yang telah didefinisikan pada contoh sebelumnya, 'Membuat Session', dimana $_SESSION menyimpan informasi nama dan waktu saat berkunjung, dalam bentuk array. Dalam hal ini, Pernyataan print_r digunakan untuk menampilkan isi dari variabel session.
<?php
// memulai session
   session_start();
<?
<!DOCTYPE html>
<html>
<body>

   <p>Mendapatkan Nilai Session yang telah didefinisikan sebelumnya:</p>
   <?php
      // megambil kembali nilai-nilai variabel session
      echo "<blockquote>";
      echo "Nama = " . $_SESSION['nama'] . "<br>";
      $waktu = $_SESSION['waktu'];
      $waktu = $waktu + (7 * 3600);
      $waktutgl = date("d-m-y", $waktu);
      $waktujam =date ("h:i:sa", $waktu); 
      echo "Saat Berkunjung= " . $waktutgl . " | " . $waktujam;
      echo "</blockquote>";
      // menampilkan isi variabel session
      echo "<p>Isi keseluruhan variabel session adalah sebagai berikut:<br>";
      echo print_r($_SESSION) . "</p>";
   ?>

</body>
</html>
Session Diatas berfungsi untuk Mendapatkan Nilai Session kembali dan menampilkannya, asalkan tautan hasil pada contoh sebelumnya, 'Membuat Session', telah dijalankan.

hasilnya
Mendapatkan Nilai Session yang telah didefinisikan sebelumnya:
Nama = Pengunjung1 Saat Berkunjung = 07-02-17 | 09:55:35am
Isi keseluruhan variabel session adalah sebagai berikut: Array ( [nama] => Pengunjung1 [waktu] => 1486436135 ) 1
Catatan: Tautan hasil pada contoh sebelumnya, 'Membuat Session', berguna untuk menspesifikasi variabel session. Nilainya akan ditampilkan disini jika tautan hasil pada contoh sebelumnya telah dijalankan



Contoh Mengubah Session

Mengubah Session dilakukan dengan hanya menggantikan nilai variabel session yang lama dengan nilai yang baru. Seperti sebelumnya, sebelum Mengubah Session, Fungsi session_start untuk Memulai Session juga harus sudah diletakkan dibagian paling awal dari halaman.
<?php
// memulai session
   session_start();
<?
<!DOCTYPE html>
<html>
<body>

   <?php
      // mengisi nilai variabel session dengan yang baru 
      $_SESSION['nama'] = "Pengunjung2";
      $_SESSION['waktu'] = time();
      echo "<p>Nilai session telah diubah dengan nama dan waktu berkunjung yang baru.</p>";
   ?>
</body>
</html>
Session Diatas berfungsi untuk menjalankan prosesnya. Sedangkan tautan hasil pada contoh sebelumnya, 'Mendapatkan Nilai Session', dapat digunakan untuk melihat kembali nilai session setelah di ubah.
Nilai session telah diubah dengan nama dan waktu berkunjung yang baru.
Catatan: Session hasil pada contoh sebelumnya, 'Mendapatkan Nilai Session', dapat digunakan untuk melihat hasil perubahan ini.

Contoh Menghapus Session

Contoh berikut menunjukkan 2 cara Menghapus Session, yaitu dengan menggunakan 'unset()' ataupun dengan 'session_unset()' yang disertai dengan 'session_destroy()'
  • unset()
  • session_unset()

Contoh Menghapus Suatu Session dengan unset()

Contoh berikut menunjukkan cara Menghapus Session, nama pengunjung dan waktu berkunjung, menggunakan fungsi unset().
<?php
   // memulai session
   session_start();
<?
<!DOCTYPE html>
<html>
<body>

<?php
   // membangun variabel session 
   unset($_SESSION['nama']);
   unset($_SESSION['waktu']);
   echo "<p>Variabel Session nama pengunjung dan waktu berkunjung telah dihapus</P>";
?>

</body>
</html>
session diatas berfungsi untuk menjalankan prosesnya. Sedangkan tautan hasil pada contoh sebelumnya, 'Mendapatkan Nilai Session', dapat digunakan untuk melihat kembali hasil dari suatu session setelah dihapus.
hasil nya .
Variabel Session nama pengunjung dan waktu berkunjung telah dihapus
Catatan: Tautan hasil pada contoh sebelumnya, 'Mendapatkan Nilai Session', berguna untuk menampilkan hasil setelah session nama pengunjung dan waktu berkunjung dihapus disini.

Contoh Menghapus Semua Session dengan session_unset()

Contoh berikut menunjukkan cara menghapus semua session menggunakan fungsi session_unset(). Proses Menghapus Session lalu disertai dengan Fungsi session_destroy() untuk meniadakan semua session
<?php
   // memulai session
   session_start();
<?
<!DOCTYPE html>
<html>
<body>

<?php
   // menghapus semua session 
   session_unset();
   // meniadakan semua session 
   session_destoy();
   echo "<p>Semua session telah dihapus dan ditiadakan</P>";
?>

</body>
</html>
Tautan ini berfungsi untuk menjalankan prosesnya. Sedangkan tautan hasil pada contoh sebelumnya, 'Mendapatkan Nilai Session', dapat digunakan untuk melihat kembali hasil setelah semua session ditiadakan.
Hasil
Semua session telah dihapus dan ditiadakan
Catatan: Tautan hasil pada contoh sebelumnya, 'Mendapatkan Nilai Session', berguna untuk menampilkan hasil setelah semua session ditiadakan.

Penerapan Session

Contoh ini memanfaatkan kerja dari variabel session untuk perlintasan informasi diantara 2 halaman PHP. Halaman pertama berisi form input dimana data dari user dimasukkan. Halaman form input ini akan mengarahkan akses ke halaman kedua melalui metoda POST, setelah tombol submit diklik. Selanjutnya, halaman kedua memproses data-data yang telah dimasukkan lalu mengembalikan hasil pemrosesan untuk diinformasikan ke halaman pertama, halaman form input PHP. Untuk menampilkan hasil pemrosesan, halaman pertama menggunakan variabel $_SESSION yang telah didefinisikan pada halaman kedua. Pilihan berikut ini untuk melihat kode-kode yang berada pada setiap halaman.
Halaman Form Input
Halaman PHP untuk Form input berada pada file 'contohform.php'. Halaman ini memiliki baris-baris kode seperti ditunjukkan berikut ini. Setelah user mengklik tombol 'submit' file 'eksekusiform.php' dipanggil melalui metoda POST untuk memproses data-data yang dimasukkan.
<?php
//memulai session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<p>Anda telah membeli bensin di SPBU dengan jumlah dan harga sebagai berikut</p> 
<form action="eksekusiform.php" method="post" target="_self" >
  <table>
    <tr>
      <td>Jumlah</td>
      <td><input type="text" name="jumlah" value="<?php echo $_SESSION['SESS_JUMLAH']; 
?>"> liter </td>
    </tr>
    <tr>
      <td>Harga</td>
      <td><input type="text" name="harga" value="<?php echo $_SESSION['SESS_HARGA']; 
?>"> Rp/liter </td>
    </tr>
    <tr>
      <td colspan="2">Jumlah yang harus dibayar: <input type="submit"></td>
    </tr>
  </table>
</form>
<?php
//menampilkan hasil pemrosesan data 
   if (isset($_SESSION["ERRMSG_ARR"]) && is_array($_SESSION["ERRMSG_ARR"]) && count($_SESSION["ERRMSG_ARR"]) > 0) {
      echo "<ul>";
      foreach ($_SESSION["ERRMSG_ARR"] as $msg) {
         echo "<li> $msg </li>";
      }
      echo "</ul>";
   } else { 
      echo "<p>&nbsp;</p>";
      echo "<p>OK..., Anda harus membayar Rp. " . $_SESSION["SESS_JUMLAH"]*$_SESSION["SESS_HARGA"] . "</p>";
   }
?>
</body>
</html>
Anda telah membeli bensin di SPBU dengan jumlah dan harga sebagai berikut
Jumlah liter
Harga Rp/liter
Jumlah yang harus dibayar: 

OK..., Anda harus membayar Rp. 0
Catatan: Setelah 'submit', data-data yang dimasukkan pada form di atas akan dikirim dengan metoda POST ke halaman eksekusi, 'eksekusiform.php'. Pada halaman ini, data diproses dan hasilnya disimpan pada variabel session sebelum akses dikembalikan ke halaman form input ini untuk selanjutnya menampilkan hasil pemrosesan data tersebut dengan cara mengambilnya dari variabel session.
Halaman Eksekusi Data Form
Halaman PHP untuk memproses data Form input berada pada file 'eksekusiform.php'. Halaman yang dipanggil melalui metoda POST ini memiliki baris-baris kode esperti ditunjukkan di bawah. Setelah kode-kode pada halaman ini di eksekusi, proses diarahkan kembali ke halaman form input data dimana hasil pengolahannya akan diperagakan melalui pernyataan 'header("location:contohform.php")';.
<?php
   //Start session
   session_start();
   unset($_SESSION['ERRMSG_ARR']);
   unset($_SESSION['SESS_BIAYA']);
   unset($_SESSION['SESS_JUMLAH']);
   unset($_SESSION['SESS_HARGA']);

   //Array to store validation errors
   $errmsg_arr = array();

   //Validation error flag
   $errflag = false;

//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
   $str = @trim($str);
   $str = stripslashes($str);
   $str = htmlspecialchars($str);
return $str;
}

//Sanitize the POST values
$jumlah = clean($_POST['jumlah']);
$harga = clean($_POST['harga']);

//Input Validations
if($jumlah == '') {
   $errmsg_arr[] = 'jumlah masih kosong';
   $errflag = true;
}
if($harga == '') {
   $errmsg_arr[] = 'harga masih kosong'; 
   $errflag = true;
}

//If there are input validations, redirect back to the login form
if($errflag) {
   $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
   session_write_close();
   header("location: contohform.php");

//Count the result 
$_SESSION["SESS_BIAYA"] = $jumlah * $harga;
$_SESSION["SESS_JUMLAH"] = $jumlah;
$_SESSION["SESS_HARGA"] = $harga;
header("location: contohform.php");
?>
Ok Maka Hasil Seperti  yang Di atas di halaman Form, 
Sekian Artikel Pembelajaran tentang  session lengkap , tuturial nya ,  semoga artikel postingan kali ini , semoga menjadi pembelajaran buat yang sedang belajar , dan jangan lupa  Coret coret di komentar , jika ada pertanyaan , ya :-)

Artikel Terkait