Fatal error: Call to undefined function session_register().
Pernah jumpai error seperti di atas pada saat membuat Login di PHP.Padahal scritp kodenya tak ada masalah jika dijalankan di laptop/komputer lama.
Ternyata masalahnya karena metode membuat session nya. Dulu kita bisa membuat session pada saat login dengan cara ini.
session_register() ==> untuk membuat login
session_is_registered() ==> untuk mengecek login atau belum
session_unregister() ==> untuk log out.
Setelah saya cari cari di dokumentasi php, fungsi diatas sudah dianggap usang di versi PHP 5.3.0. Dan sekarang sama sekali tidak bisa digunakan alias dihapus dan tidak berjalan di PHP 5.4.0.
Tapi jangan kawatir saya ada script login yang didukung oleh PHP yang sekarang.
Buat database di phpMyAdmin dengan nama database: dbmrr dan nama tabel user. Lebih jelas seperti gambar ini.
Jangan lupa pada bagian password di enscript dengan MD5.
Buat lagi file php dan disimpan dengan nama koneksi.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php // ubah sesuai database yang dibuat $server = "localhost"; $username = "root"; $password = ""; $database = "dbmrr"; // Cara Koneksi serta memilih database di server mysql_connect($server,$username,$password) or die("Koneksi gagal"); mysql_select_db($database) or die("Database tidak bisa dibuka"); //emerer.com ?> |
Berikutnya kita membuat form untuk memasukan username dan password. File ini diberi nama Login.php.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<html> <head> <title>Login | emerer.com</title> </head> <body> <form action="LoginPeriksa.php" method="post" name="form1" target="_self"> <table width="200" border="0" align="center"> <tr> <td></td> </tr> </table> <table width="400" border="0" align="center" cellpadding="2" cellspacing="1" > <tr > <td colspan="2"><div align="center" >Masukan User dan Password Anda : </div></td> </tr> <tr> <td width="118" align="right" ><span >User : </span></td> <td width="271"><input name="username" type="text" size="19" maxlength="19" autofocus/></td> </tr> <tr> <td align="right"><span >Password : </span></td> <td><input name="password" type="password" size="30" maxlength="30" /></td> </tr> <tr> <td> </td> <td><input name="Submit" type="submit" value="Masuk" /></td> </tr> </table> </form> </body> </html> |
Setelah diisi username dan password, maka jika kita klik tombol Masuk akan dibawa ke file php yang bernama LoginPeriksa.php. File ini berguna untuk mencocokan dengan yang ada di database.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php include "koneksi.php"; //emerer.com function antiinjection($data){ $filter_sql = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES)))); return $filter_sql; } $username = antiinjection($_POST['username']); $pass = antiinjection(md5($_POST['password'])); $login=mysql_query("SELECT * FROM user WHERE username='$username' AND password='$pass'"); $ketemu=mysql_num_rows($login); $r=mysql_fetch_array($login); // Apabila username dan password ditemukan if ($ketemu > 0){ session_start(); $_SESSION[namauser] = $r[username]; $_SESSION[passuser] = $r[password]; header('location:index.php'); } else{ // echo "<link href=../config/adminstyle.css rel=stylesheet type=text/css>"; echo "<center>LOGIN GAGAL! <br> Username atau Password Anda tidak benar.<br>"; echo "<a href=login.php><b>ULANGI LAGI</b></a></center>"; } ?> |
File yang ini digunakan untuk memeriksa apakah sudah login atau belum. Akan dipanggil di setiap file php yang berisi konten website. Jangan lupa namanya PeriksaSession.php.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php error_reporting(0); session_start(); if (empty($_SESSION[username]) AND empty($_SESSION[passuser])){ //echo "<b> Perhatian! </b><br>"; echo "<div align=center>ADMIN</div>"; //emerer.com include "login.php"; exit; } ?> |
Pakailah script program ini untuk Log Out atau keluar. File ini akan menghapus session yang sudah dibuat pada saat login. File ini saya beri nama LoginKeluar.php
1 2 3 4 5 6 |
<?php session_start(); session_destroy(); //emerer.com echo "<script>alert('Anda telah keluar dari aplikasi'); window.location = 'index.php'</script>"; ?> |
Yang terakhir panggilah file PeriksaSession.php di setiap file php yang mewajibkan harus login dulu.
Contoh nya pada file index.php.
<?php
include “PeriksaSession.php”;
?>
<html>
…
Isi website
…
…
…
</html>
Cara mencobanya tinggal panggil saja file index.php atau file lain yang butuh login. Karena belum login maka akan dibawa ke form login. Setelah diisi username dan password klik masuk. Jika berhasil maka akan dibawa ke index.php.
Untuk log out tinggal jalankan aja file LoginKeluar.php
Semoga berhasil, jika ada masalah silahkan tulis komentar dibagian bawah ini.