Header Ads

Membuat Sistem Login PHP,MYSQL

Baca juga artikel terkait lainnya

Membuat Sistem Login dengan Menggunakan Session pada PHP, MySQL dan ApacheFrom PHP Indonesia.

Pembuatan halaman login dengan menggunakan PHP dan MySQL adalah salah satu dari sekian banyak pertanyaan yang sering penulis terima melalui e-mail. Sebenarnya pembuatannya sangat sederhana sekali dan melalui tulisan kali ini kita akan belajar bagaimana caranya membuat sistem login pada website (situs web) dengan menggunakan PHP dan MySQL.

Membuat Sistem Login PHP,MYSQL

Ada beberapa hal yang harus siapkan sebelumnya. Penulis mengasumsikan Anda sudah melakukan instalasi dengan benar pada Apache web server, MySQL database dan juga PHP. Penulis disini menggunakan Apache versi 1.3.29 (pada Windows), MySQL versi 4.1.9 dan PHP versi 4.3.4. Konfigurasi database MySQL penulis asumsikan menggunakan localhost dengan user root dan password blank (kosong). Sebelumnya Anda juga harus membuat database dahulu pada MySQL dengan nama db_test. Script nya adalah seperti berikut.

CREATEDATABASE db_test;
Setelah itu Anda Anda perlu membuat tabel pada database db_test untuk menyimpan username dan passwordnya. Sebelumnya Anda harus mengarahkan database yang aktif ke db_test dengan perintah use db_test. Script untuk membuat tabelnya adalah seperti berikut ini.

CREATETABLE tbuser(
  username varchar(50),
  password varchar(255));

Setelah itu isilah data pada tabel tbuser tersebut dengan username admin dan password adminpass. Scriptnya adalah sebagai berikut.

INSERTINTO tbuser VALUES('admin',md5('adminpass'));
Sekarang Anda sudah memiliki sebuah database db_test yang di dalamnya terdapat sebuah tabel tbuser dan sudah ada satu row data dengan username = admin dan password = adminpass dalam bentuk yang sudah di-hash dengan fungsi md5.
Sekarang kita siapkan dari sisi script PHP nya. Sebelumnya kita harus sediakan dulu dokumen-dokumen yang akan diperlukan dalam sistem login ini. Kita memerlukan sebuah halaman login yang berisi inputan username dan password. Dokumen berikut ini adalah halaman login yang akan Anda gunakan nantinya.

login page
username: 
password: 

Silakan Anda simpan dokumen di atas dengan nama loginpage.php. Kita lihat di atas pada bagian form, action script nya diarahkan ke file loginproc.php. File loginproc.php ini akan berisi script PHP yang berfungsi untuk memeriksa apakah username dan password yang diinputkan user benar atau tidak. Sekarang mari kita buat script loginproc.php nya. Script-nya adalah seperti berikut ini.

<?phpsession_start();
  $server = "localhost"; //ganti sesuai server Anda$username = "root"; //ganti sesuai username Anda$password = ""; //ganti sesuai password Anda$db_name = "db_test"; //ganti sesuatu nama database Anda
  $db = mysql_connect($server,$username,$password) or DIE("Connection to database failed, perhaps the service is down !!");
  mysql_select_db($db_name) or DIE("Database name not available !!");
  $login = mysql_query("select * from tbuser where (username = '" . $_POST['username'] . "') and (password = '" . md5($_POST['password']) . "')",$db);
  $rowcount = mysql_num_rows($login);
  if($rowcount == 1){$_SESSION['username'] = $_POST['username'];
    header("Location: securedpage.php");
  }else{header("Location: loginpage.php");
  }?>

Kita lihat pada code di atas diawali dengan fungsi session_start();. Fungsi ini digunakan untuk menginisialisasi suatu data session. Dia akan membuat sebuah session baru atau melanjutkan session yang sudah ada berdasarkan pada session yang sedang terjadi akibat dari pertukaran data session lewat request GET, POST atau cookie. Penjelasan lebih detail dari fungsi ini bisa dilihat di http://id.php.net/function.session-start.

Inti algoritma dari script loginproc.php diatas adalah membuat session baru, kemudian melakukan koneksi ke database MySQL, kemudian melakukan operasi SELECT ke tabel tbuser untuk username dan password yang diisikan oleh user. Jika username dan password dapat ditemukan lalu script akan mengarahkan user ke halaman securedpage.php, sebaliknya jika username atau password salah maka user akan diarahkan kembali ke halaman loginpage.php.

Sekarang kita perlu membuat sebuah script atau dokumen lagi yaitu securedpage.php. File securedpage.php adalah suatu halaman web yang merupakan halaman yang boleh diakses atau dimasuki user yang sudah berhasil login dengan benar. Mengapa dinamakan securedpage.php? Hal tersebut karena file securedpage.php nantinya tidak akan bisa diakses langsung dari browser sebelum suatu user melakukan login dengan benar. Pada halaman securedpage.php ini juga akan berisi link untuk logout sehingga session dari user tersebut bisa hilang dan kemudian kembali ke halaman loginpage.php. Berikut ini adalah script dari file securedpage.php.

<?phpsession_start();
  if(!isset($_SESSION['username'])){header("Location: loginpage.php");
  }?>

secured page
secured page with session 
logout

Simpan script di atas dengan nama securedpage.php. Kita lihat pada bagian atas dari script terdapat suatu mekanisme untuk memeriksa apakah session yang bernama ‘username’ sudah ada atau belum. Jika belum ada maka secara otomatis user atau pengunjung web tersebut akan diarahkan kembali ke halaman login di loginpage.php.
Pada body halaman securedpage.php terdapat link untuk melakukan logout. Link tersebut mengarah ke file logoutpage.php. Berikut ini adalah script untuk melakukan logout-nya.

<?phpsession_start();
  unset($_SESSION['username']);
  session_destroy();
  header("Location: loginpage.php");
?>

Simpan script di atas dengan nama logoutpage.php. Script tersebut digunakan untuk menghapus atau menghancurkan data session Anda sehingga orang lain atau pengunjung web lainnya tidak bisa melihat halaman securedpage.php yang sudah Anda akses dengan username dan password Anda. Begitu session sudah di hapus dengan fungsi session_destroy() maka langsung Anda akan diarahkan ke halaman login di loginpage.php.

Letakkan semua file-file yang sudah Anda buat tadi pada folder yang menjadi root dari web server Apache Anda dan kemudian Anda bisa coba script diatas untuk dijalankan pada browser. Pastikan dulu semua service yang dibutuhkan sudah jalan terlebih dahulu, yaitu service apache dan mysql. Untuk mencoba script-nya Anda bisa membuka browser dan ketik http://localhost/loginpage.php. Masukkan username yaitu admin dan passwordnya yaitu adminpass. Anda bisa juga mendownload seluruh script di atas pada bagian akhir dari tulisan ini.

Powered by Blogger.