About Session

Assalamualaikum
Maaf yaa updatenya telat nih
Langsung aja yaa kita akan mengenal tentang SESSION.
Berbeda dari biasanya sekarang aku mulai dari contoh dulu yaa supaya gampang wkwkwk.
Misal kita punya form sebagai berikut:

<form method="post" action="tahap1.php">
Bilangan ke-1 <input type="text" name="bil1" /><br />
Bilangan ke-2 <input type="text" name="bil2" /><br />
<input type="submit" name="submit" value="Submit" />
</form>

script tahap1.php:

<?php
$bil1=$_POST[bil1];
$bil2=$_POST[bil2];
echo "Bilangan 1 = ".$bil1."<br />";
echo "Bilangan 2 = ".$bil2."<br />";

echo "<a href='next.php'>Klik Here</a>";
?>

Seperti materi yang sebelumnya, jika kita telah memasukkan kedua bilangan tersebut melalui form, kemudian mensubmitnya maka pada script tahap1.php akan muncul kedua bilangan tersebut.

Di script tahap1.php juga terdapat link yang menuju script next.php, dalam script ini juga akan menampilkan kedua bilangan yang telah kita inputkan.

next.php:

<?php
$bil1=$_POST[bil1];
$bil2=$_POST[bil2];
echo "Bilangan 1 = ".$bil1."<br />";
echo "Bilangan 2 = ".$bil2."<br />";

echo "<a href='next.php'>Klik Here</a>";
?>

Bagaiman jika kita mengklik link next.php tersebut kembali? Yap, kedua bialngan yang telah kita inputkan tadi tidak akan bisa terbaca. Kedua bilangan tersebut hanya bisa terbaca pada script tahap1.php saja.

Untuk mengatasi hal tersebut terdapat 2 solusi yang bisa kita gunakan, yakni menggunakan GET method atau SESSION.

Menggunakan GET method:
Caranya adalah menyisipkan parameter untuk kedua bilangan pada link menuju next.php. Selanjutnya dalam next.php, parameter kedua bilangan ini dapat dibaca nilainya.

<?php
$bil1=$_GET[bil1];
$bil2=$_GET[bil2];
echo "Bilangan 1 = ".$bil1."<br />";
echo "Bilangan 2 = ".$bil2."<br />";

echo "<a href='next.php'>Klik Here</a>";
?>

Kelemahan: Ditampilkannya nilai input sebagai parameter dalam URL link.

Menggunakan SESSION:
Dengan menggunakan SESSION kita tidak perlu menuliskan nilai input dalam URL link. Nilai input ini nantinya akan disimpan dalam suatu variabel SESSION. Selama browser kita masih aktif (belum ditutup) ataupun sengaja dinonaktifkan (dihapus) SESSIONnya, maka variabel SESSION akan tetap aktif.
Nilai yang disimpan dalam variabel SESSION ini bisa dibaca atau dikenali di beberapa halaman script. Beda dengan variabel biasa. Jika variabel biasa hanya dapat dikenali pada halaman script tersebut saja.
Selanjutnya bagaimana cara menyimpan  nilai ke dalam suatu variabel  SESSION? Sebelum  mulai  menyimpan,  kita  harus  mengaktifkan  SESSION  nya  terlebih  dahulu menggunakan perintah

session_start();

Setelah SESSION aktif, baru kita bisa membuat variabel SESSION untuk menyimpan nilai. Berikut ini perintah untuk menyimpan sebuah nilai ke dalam variabel SESSION:

$_SESSION['namaSession'] = value;

Nilai  yang  bisa  disimpan  dalam  SESSION  ini  bisa  berupa  bilangan,  array,  karakter maupun string. 
Sehingga apabila konsep ini diterapkan pada contoh di atas, maka berikut ini adalah script submit.php yang telah dimodifikasi:
tahap1.php

<?php
session_start();   // mengaktifkan SESSION
$bil1 = $_POST['bil1'];
$bil2 = $_POST['bil2'];

// menyimpan kedua bilangan ke dalam SESSION
$_SESSION['bil1'] = $bil1;
$_SESSION['bil2'] = $bil2;

echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php'>Klik di sini</a>"; ?>

Kemudian, bagaimana dengan script next.php nya? Bagaimana cara menampilkan nilai kedua bilangan yang disimpan dalam SESSION? Ini dia scriptnya:
next.php

<?php
session_start();
// membaca nilai dari variabel SESSION
$bil1 = $_SESSION['bil1'];
$bil2 = $_SESSION['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
?>

Keterangan: Dalam script lanjut.php di atas, kita tetap memberikan perintah session_start() karena dalam script lanjut.php ini kita masih memanfaatkan variabel SESSION.

Setelah belajar mengaktifkan SESSION, kita akan belajar cara menghapus variabel SESSION.
Cara 1: 
Keluar dari browser (EXIT)
Cara 2: 
Menggunakan perintah berikut ini:
untuk menghapus semua variabel SESSION:

session_destroy();

untuk menghapus suatu variabel SESSION tertentu:

unset($_SESSION['nama session']);

Nah sekarang apa sih wujud penerapan SESSION ini???

Biasanya SESSION digunakan untuk keperluan autentifikasi user melalui login. Ideanya apabila user sukses melakukan login, maka username akan disimpan dalam sebuah SESSION.
Mengapa username ini harus disimpan ke dalam SESSION? Dengan disimpannya username ke dalam SESSION sekaligus bisa digunakan untuk mencegah adanya penyusup yang masuk ke aplikasi tanpa melalui login.
Lho kok bisa? Ya.. untuk mengecek ada tidaknya penyusup yang masuk ke aplikasi tanpa login, bisa hanya dengan mengecek SESSION nya. Jika penyusup tadi masuk ke aplikasi tanpa login, otomatis SESSION nya belum ada, karena SESSION baru ada ketika user login dengan sukses.

1. Buatlah  autentifikasi  user  dari  suatu  aplikasi  web  menggunakan  konsep  SESSION. Adapun username-username yang boleh mengakses aplikasi ini adalah
Username dan password di atas harus disimpan dalam sebuah ARRAY. Adapun konsepnya sama seperti pada pengerjaan soal no. 5 Bab 11. 
Berikut ini gambaran aplikasinya:
Terlebih dahulu buatlah sebuah desain halaman web dengan layout seperti di bawah ini:
Selanjutnya, bagi-bagilah layout tersebut ke dalam modul header.php dan footer.php Untuk halaman utama, tampilkan form login untuk user.
Selanjutnya bila login berhasil tampilkan halaman berikut ini (munculkan link navigasi) 
Keterangan: 
Login  dikatakan  berhasil  bila  password  yang  dimasukkan  oleh  seorang  user melalui form login sama dengan password yang tersimpan dalam aplikasi (dalam hal ini password yang ada dalam array). XXX adalah username yang sukses login. 
Untuk setiap halaman Link 1, 2, dan 3 berikut ini tampilannya
Catatan: 
Aplikasi yang dibuat harus bisa menghandle apabila login salah, misalnya muncul keterangan “Password yang dimasukkan salah” bila username terdaftar namun passwordnya salah, atau “Username tidak terdaftar” bila usernamenya tidak terdaftar dalam aplikasi. 
Bila password login salah atau user tidak terdaftar, maka menu link navigasi tidak ditampilkan 
Aplikasi  yang  dibuat  harus  bisa  menghandle   adanya  penyusup  yang  ingin langsung masuk ke halaman Link 1, 2 dan 3 tanpa melalui login (autentifikasi). Aplikasi yang dibuat harus bisa menghandle proses logout.

Program:
formlogin.php
<html>
<head>
<title> Form login </title>
</head>
<body>
    <center>
    <table width=90% border=1>
    <tr>
    <td colspan=2><center><b> Welcome to Form Login </b></center></br>
    </tr>
    <tr>
    <td><center> Silahkan Login </center></br>
    <center>
    <form method="post" action="userpass.php">
    Username <input type=text name=user><br>
    Password <input type=password name=ps><br>
    <input type=submit name=Submit value=submit>
    <input type=reset name=Reset value=reset>
    </form></center></td></tr>
    <tr>
    <td colspan=2><center><b> Copyright @alimafahmi.blogspot.com 2019 </b></center></br>
    </td></tr>
</body>
</html>

userpass.php
<?php
session_start();
$_SESSION["nama"]=$_POST["user"];
$_SESSION["pass"]=$_POST["ps"];
?>
<?php
$name=$_POST["user"];
$rhs=$_POST["ps"];
switch($name)
{
    case $name == 'A' && $rhs == 'password1';
    case $name == 'B' && $rhs == 'password2';
    case $name == 'C' && $rhs == 'password3';
    case $name == 'D' && $rhs == 'password4';
    case $name == 'E' && $rhs == 'password5';
    {include "menu.php"; break;}
    case $name == 'A' && $rhs != 'password1';
    case $name == 'B' && $rhs != 'password2';
    case $name == 'C' && $rhs != 'password3';
    case $name == 'D' && $rhs != 'password4';
    case $name == 'E' && $rhs != 'password5';
    {echo "<b> Password Anda Salah </b>"; break;}
    case $name != 'A' && $rhs == 'password1';
    case $name != 'B' && $rhs == 'password2';
    case $name != 'C' && $rhs == 'password3';
    case $name != 'D' && $rhs == 'password4';
    case $name != 'E' && $rhs == 'password5';
    {echo "<b> Username Anda Salah </b>"; break;}

    default : echo"<b> Anda Belum Memasukkan Username dan Password </b>";
}
?>

menu.php
<?php
session_start();
$username=$_SESSION["nama"];
?>
<html>
<head>
<title> alimafahmi </title>
</head>
<body>
<center>
    <table width=90% border=1>
    <tr>
    <td colspan=2><center><b> SELAMAT DATANG JANGAN LUPA SENYUM </b></center></br>
    <?php 
    echo "Username = $username";
    ?></td>
    </tr>
    <tr>
    <td><center> CONTENTS </center></br>
    <center>
        <a href="malang.php">1. COOKIE </a><br>
        <a href="jogja.php">2. ARRAY </a><br><br><br><br>
        <a href="logout.php"> Logout </a><br>
    </center></td></tr>
    <tr>
    <td colspan=2><center><b> Copyright @alimafahmi.blogspot.com 2019 </b></center></br>
    </td></tr>
</body>
</html>

malang.php
<?php
session_start();
$username=$_SESSION["nama"];
?>
<html>
<head>
<title> alimafahmi </title>
</head>
<body>
<center>
    <table width=90% border=1>
    <tr>
    <td colspan=2><center><b> SELAMAT DATANG JANGAN LUPA SENYUM </b></center></br>
    <?php 
    echo "Username = $username";
    ?></td>
    </tr>
    <tr>
    <td><center> CONTENTS </center></br>
    <center>
        <a href="malang.php">1. COOKIE </a><br>
        <a href="jogja.php">2. ARRAY </a><br><br><br><br>
        <center><b> COOKIE </b></center>
        Sama halnya dengan SESSION, COOKIE merupakan suatu cara yang digunakan untuk 
        menyimpan value atau data supaya dapat dikenali di beberapa script halaman web. 
        Namun, keduanya memiliki perbedaan dalam segi letak penyimpanan. 
        SESSION akan disimpan dalam server web sedangkan COOKIE disimpan dalam komputer client. <br>
        Kelebihan SESSION:<br>
        User tidak bisa menghapus value yang tersimpan kecuali dirinya sendiri, 
        misal degan menutup browser atau ketika dalam proses logout.<br>
        Kekurangan SESSION:<br>
        Ketika tiba-tiba jaringan internetnya putus, 
        maka otomatis SESSION akan terhapus sehingga kita harus login kembali.<br>
        Kelebihan COOKIE:<br>
        Value akan tetap tersimpan meskipun jaringna internetnya putus atau dalam kondisi offline, 
        karena value pada COOKIE disimpan di komputer client.<br>
        Kelemahan COOKIE:<br>
        Value COOKIE dapat dihapus oleh orang lain yang juga menggunakan komputer tersebut 
        tau mungkin user komputer tersebut telah mengeset bahwa browsernya tidak bisa menerima COOKIE 
        sehingga COOKIE tidak bisa tersimpan dalam komputer client.<br>
        <a href="logout.php"> Logout </a><br>
    </td></tr>
    <tr>
    <td colspan=2><center><b> Copyright @alimafahmi.blogspot.com 2019 </b></center></br>
    </td></tr>
</body>
</html>

jogja.php
<?php
session_start();
$username=$_SESSION["nama"];
?>
<html>
<head>
<title> alimafahmi </title>
</head>
<body>
<center>
    <table width=90% border=1>
    <tr>
    <td colspan=2><center><b> SELAMAT DATANG JANGAN LUPA SENYUM </b></center></br>
    <?php 
    echo "Username = $username";
    ?></td>
    </tr>
    <tr>
    <td><center> CONTENTS </center></br>
    <center>
        <a href="malang.php">1. COOKIE </a><br>
        <a href="jogja.php">2. ARRAY </a><br><br><br><br>
        <center><b> ARRAY </b></center>
        Selama ini bentuk variabel yang kita buat untuk menyimpan suatu nilai 
        hanya bisa untuk menyimpan sebuah nilai saja. Misal nih jika sebuah nilai 
        telah disimpan ke dalam sebuah variabel, selanjutnya variabel tersebut akan 
        diassign kembali dengan sebuah nilai yang lain, maka nilai yang sebelumnya akan 
        ditimpa oleh nilai yang baru.<br>

        Nah, gimana jika kita ingin membuat variabel yang dapat diassign (disimpan) 
        oleh beberapa nilai yang lebih dari satu??<br>

        Untuk menjawab pertanyaan di atas kita dapat menggunakan variabel bertipe data array.<br>
        <a href="logout.php"> Logout </a><br>
    </td></tr>
    <tr>
    <td colspan=2><center><b> Copyright @alimafahmi.blogspot.com 2019 </b></center></br>
    </td></tr>
</body>
</html>

logout.php
<?php
session_start();
$_SESSION["nama"]=$_POST["user"];
$_SESSION["pass"]=$_POST["ps"];
?>
<html>
<head>
<title> alimafahmi </title>
</head>
<body>
<center>
    <table width=90% border=1>
    <tr>
    <td colspan=2><center><b> SAMPAI JUMPA </b></center></br>
    </td>
    </tr>
    <tr>
    <td><center> CONTENTS </center></br>
    <center>
    <h2> Thank you and see you later </h2>
    </center></td></tr>
    <tr>
    <td colspan=2><center><b> Copyright @alimafahmi.blogspot.com 2019 </b></center></br>
    </td></tr>
</body>
</html>
<?php
session_destroy();
?>
Output:

Bila Terjadi Kesalahan Username


Bila Terjadi Kesalahan Password
Bila Tidak Memasukkan

"Find Your Own Way"








Komentar