TUTORIAL PHP MYSQL Langkah Tepat menjadi Web Developer Handal, menguasai PHP dan MySQL, jalan terbaik membuat website dan aplikasi berbasis web www.ilmuwebsite.com Bagian 24. Membuat Autentikasi Login dengan Session dan Cookies 1
Bagian 24. Membuat Autentikasi Login dengan Session dan Cookies Menggunakan Session dan Cookies untuk halaman login Session dan Cookies boleh dibilang merupakan sesuatu yang sangat penting dalam pembagian hak akses, antara user yang belum login, dengan user yang sudah login... dalam wordpress misalnya, cuma user yang sudah login saja yang bisa memposting artikel, namun user yang belum login tidak bisa melakukannya. Contoh yang lain... misalkan dalam forum, anda tidak diperkenankan membuat thread baru jika anda belum melakukan login, mungkin contoh yang lainnya, anda tidak bisa membuat wall status baru jika anda belum login ke facebook anda. Semua berhubungan dengan login, namun apa yang berada di balik kode-kode login tersebut, hampir semua login pada aplikasi web atau website itu menggunakan session dan cookies untuk membedakan kondisi user yang sudah login dan belum login, namun sebelum mengetahui lebih lanjut, saya akan coba jelaskan terlebih dahulu apa itu session dan apa itu cookies... Session Session merupakan variable global yang jika diregistrasikan atau didefinisikan maka variable tersebut dapat di akses di halaman manapun. ketika kita meregistrasikan session, maka php akan kepada browser untuk menyimpan session yang ada, sehingga session disimpan oleh browser sementara mirip dengan pengandaian sebuah tiket masuk. setiap halaman php yang membutuhkan adanya login akan 2
mengecek apakah variable sessionnya sudah diregistrasikan. jika sudah maka, halaman php tersebut akan mempersilahkan user dapat mengaksesnya... Oke, karena session memiliki tugas khusus dan session bertugas sebagai variable global yang dapat di akses di halaman mana saja, sehingga session pun membutuhkan fungsi tersendiri untuk dapat menjalankannya. Standarnya membuat session adalah seperti ini : // fungsinya terlebih dahulu // dan standarnya setiap session_start digunakan // dan ketika user mengakses halaman tersebut biasanya memiliki // session_id tersendiri kita tes echo session_id(); // session_id(() akan selalu berbeda setiap anda menjalankan browser kita akan buat 2 buah file, file pertama digunakan untuk meregistrasikan/mengeset session, file yang kedua berguna sebagai halaman untuk mengetes apakah sessionnya telah berfungsi dengan benar, jika benar maka file yang kedua itu dapat menampilkan isi dari session yang sebelumnya telah diregistrasikan pada halaman pertama... file pertama, session_reg_first.php : // untuk membuat session, diperlukan fungsi khusus yang dapat // memproduksi session // yakni, dan jangan lupa untuk meletakkan sessio_start di baris paling // awal setelah 3
$_SESSION['first'] = "saya adalah session"; echo "Anda telah meregistrasikan session berisi '<strong>". $_SESSION['first']. "</strong>'"; session_destroy(); <br /> <a href="other_page.php">klik di sini untuk pindah halaman</a> kemudian file selanjutnya other_page.php : echo "Anda telah membuat session di halaman sebelumnya, berisi '<strong>". $_SESSION['first']."</strong>'"; session_destroy(); Kita coba tes di browser. Begitu juga jika anda ingin mengakses session yang telah dibuat pada halaman lain. Misalkan kita buat satu buah file sembarang yang file ini juga di coba untuk mengakses. Kita beri nama file tersebut misalnya random.php // jangan lupa untuk memasukkan fungsi session_start setiap akan // meregistrasi atau mengakses session // kita coba akses variable session yang telah di set echo "isi dari session yang aktif ".$_SESSION['first']; 4
Menghapus atau menonaktifkan Session Ada satu pertanyaan bagaimana caranya untuk menonaktifkan atau menghilangkan session yang telah dibuat : unset($_session['first']); echo "Isi '$_SESSION[first]' adalah... = ". $_SESSION['first']; // jika ingin memusnahkan semua session yang ada // anda dapat menggunakan session_destroy // biasanya hal ini digunakan ketika proses logout terjadi // semua session yang ada benar-benar di hapus // penggunaanya adalah seperti ini session_destroy(); echo "<br />Semua session telah di hapus..."; Cookie Jika session itu akan berakhir ketika browser ditutup, namun jika cookie itu akan berakhir pada waktu yang ditentukan oleh web developer sebelumnya. Contoh penggunaan cookie adalah seperti ini : // pertama kita buat terlebih dulu file cookie1.php // lalu di sini kita siapkan variable untuk cookienya $isicookie = "ini adalah isi dari cookie"; // kemudian kita buat cookienya dengan lama waktu 1 jam misalnya... // di hitung dengan menggunakan satuan waktu detik setcookie("cookie1", $isicookie, time()+3600); // untuk dapat mengakses cookie anda dapat menggunakan sintax echo $_COOKIE["cookie1"]; 5
Dan misalkan kita ingin mengakses cookie di halaman yang lain juga bisa, kita buat halaman lain untuk mengakses cookie : // kemudian langsung akses variable cookienya echo $_COOKIE["cookie1"]; Begitu jika ingin menghapus atau menghilangkan cookie yang ada, kita buat satu buah file lagi deletecookie.php // hapus cookie yang ada dengan unset unset($_cookie['cookie1']); echo $_COOKIE['cookie1']; 6