Membuat Halaman
Login dengan PHP
Halaman login sering kali digunakan untuk otentifikasi user yang
memasuki sebuah halaman web. Apabila Anda berniat membuat halaman
login dengan PHP, tentu Anda memerlukan session dan cookies dalam
pembuatan sistem otentifikasi pengunjung situs web Anda. Mungkin
Anda pemula PHP yang ingin belajar session dan cookies dan tertarik
ingin belajar membuat halaman login seperti ini?
T
idak bisa dipungkiri bahwa dalam sebuah halaman web. Saat ini tabel user_data masih kosong.
keamanan akses di sebuah halaman Mungkin Anda ingin mencoba membuat Sekarang kita masukkan data user yang
web merupakan suatu hal yang halaman login seperti ini. Kita akan mem- nantinya akan Anda berikan untuk
sangat penting untuk diperhatikan. Data bahas bagaimana cara membuat halaman mencoba untuk login dalam halaman login
yang terdapat dalam suatu halaman web login seperti ini, sekaligus kita dapat melihat yang nantinya Anda buat.
seringkali merupakan data penting yang perbandingan proses login dengan session mysql> insert into user_data values
tidak boleh diperlihatkan sembarangan dibandingkan menggunakan cookies yang (‘Stefan A.Y.’, ‘stefan’, ‘sembarang’);
kepada orang yang tidak berhak. juga merupakan kemampuan bahasa script
Contohnya tidak mungkin seluruh data PHP. Tulisan sebenarnya ini lebih ditujukan Semua script PHP yang kita buat
yang menyangkut privasi seseorang dalam bagi Anda yang mungkin masih asing dan nantinya akan terkoneksi ke database login
suatu halaman web langsung ditampilkan belum mengenal session dan cookies. dalam mysql sebagai user ‘php’. Berikut ini
kepada semua pengunjung yang membuka Saat ini, PHP merupakan bahasa script adalah perintah-perintah untuk memberikan
situs web tertentu. open source yang masih seringkali wewenang bagi database user ‘php’ untuk
Sedangkan Internet merupakan dunia digunakan untuk menciptakan halaman mengakses tabel yang terdapat dalam
yang luas di mana setiap orang dapat web yang dinamis terutama di lingkungan database login.
dengan mudah mengakses situs Anda. berbasiskan Linux. Dengan didukung oleh mysql> GRANT ALL PRIVILEGES ON
Untuk itu, hak akses user terhadap data apache server dan database MySQL, PHP login.* TO php@localhost identified by
yang terdapat dalam situs web perlu dapat menghasilkan halaman web dinamis ‘php’ ;
dibatasi. Cara yang biasa digunakan untuk yang cukup powerful. Nantinya database
membatasi hak akses seseorang terhadap yang diperlukan untuk otentifikasi user id Sekarang database sudah siap dan kita
isi sebuah website, yaitu dengan dan password akan kita buat dengan tinggal membuat script-script PHP untuk
melakukan proses login terlebih dahulu. menggunakan database MySQL. menghasilkan sebuah halaman login.
Ketika Anda memasuki sebuah halaman Sekarang kita akan membuat database Pertama-tama untuk mempermudah kita
web yang seperti ini, sebelum dapat yang akan digunakan untuk menyimpan user dalam mengakses database, buatlah
mencari data yang diperlukan dari website id dan password yang dapat digunakan sebuah file yang bernama ‘connect.php’
tersebut Anda diminta untuk memasukkan untuk login dalam sebuah halaman web. yang berisi variabel yang akan digunakan
user id yang merupakan pengenal Anda Untuk membuat database dan table yang dalam koneksi dengan database. Tujuan
dan password yang hanya diketahui oleh diperlukan, maka Anda dapat menjalankan kita membuat file connect.php, yaitu
Anda sendiri, sehingga hanya user yang mysql sebagai user root dan memberikan supaya apabila sewaktu-waktu terjadi
telah memiliki haklah yang diizinkan untuk perintah-perintah SQL berikut: perubahan informasi mengenai database
mengakses situs tersebut. mysql> CREATE DATABASE login ; dapat dengan mudah memperbaiki
Untuk dapat mengakses situs ini, user informasi program dengan mengganti isi
yang login harus memberikan user id dan mysql>CONNECT login ; variabel yang terdapat dalam connect.php.
password dengan benar. User id dan // file connect.php
password yang telah diberikan akan mysql> CREATE TABLE user_data ( <?php
divalidasi dengan database yang sudah ada name VARCHAR(40) NOT NULL, $host=”localhost”; // server dimana
di server. Apabila user id terdaftar dan user_id VARCHAR(20) NOT NULL, database disimpan
password yang diberikan juga cocok dengan password VARCHAR(20) NOT NULL, $db_username=”php”; // nama user
data yang terdapat dalam database, maka PRIMARY KEY(user_id) yang dipakai untuk connect ke
user akan diberi wewenang untuk masuk ke ); database
<td><input name=”user_password”
type=”password”></td>
</tr>
<tr>
<td></td>
<td><input name=”submit” type=
”submit” value=”Login”></td>
</tr>
</table>
</form>
</body>
</html>
sesungguhnya akan ditampilkan padanya. Anda gunakan untuk ditampilkan pada Dengan begini semua variabel session
Kita misalkan halaman ini diberi nama halaman html Anda. Dari halaman yang telah ada akan dihapus dari ingatan
sess_default.php. Berikut ini contoh halaman sess_default.php inilah link-link ke halaman browser yang Anda gunakan. Apabila
web yang dituju setelah proses login: yang lain akan dimulai. Namun ada sewaktu-waktu Anda ingin memberi
// file sess_default.php kemungkinan user yang iseng langsung kesempatan pada user untuk melakukan
<?php menambahkan teks: default.php ke dalam logout Anda tinggal menambahkan hyperlink
session_start(); url sehingga halaman tersebut dapat tampil pada halaman web Anda yang mengarah
if(!session_is_registered(‘reg_userid’)) tanpa harus login terlebih dahulu. kepada halaman sess_logout.php ini.
{ Maka dari itu, untuk menjaga keamanan Sekarang proses login yang telah Anda
header(“location: sess_login.php”); halaman web tersebut sebaiknya pada buat sudah selesai. Cobalah untuk membuka
exit(); setiap halaman web yang ingin halaman sess_login.php pada browser
} disembunyikan terhadap user yang belum kesayangan Anda. Untuk saat ini Anda
?> login pada script diatas kita memeriksa diminta untuk memasukkan user id ‘stefan’
<html> apakah user id sudah terdaftar sebagai dan user password-nya ‘sembarang’. Maka
<head> variabel session. akan terbuka halaman baru yang bernama
<title>Halaman Setelah Login</title> <?php sess_default. Di sini akan Anda tempatkan
<body> session_start(); isi dari halaman web Anda. Halaman lainnya
Selamat datang <?echo “$reg_username”; if(!session_is_registered(‘reg_userid’)) dapat dituju dengan menempatkan
?><br> { hyperlink-nya pada halaman ini.
Anda telah login sebagai <?echo header(“location: sess_login.php”);
“$reg_userid”;?><br> exit(); Menggunakan cookies
<a href=”sess_logout.php”>Logout</a> } Setelah mengetahui pembuatan login
</body> ?> menggunakan session, sekarang kita
</html> membuat halaman login menggunakan
Script ini akan melakukan pengecekan cookies. Sebelum membuat sebuah
Tag yang terdapat di dalam tag terhadap variabel session ‘reg_userid’. halaman login menggunakan cookies, Anda
<body> dapat Anda ganti dengan Apabila variabel session belum terdaftar tetap perlu melakukan perintah-perintah
halaman html Anda sendiri. Variabel maka user diminta untuk melakukan pembuatan database dan tabel user_data
session yang telah terdaftar seperti prosedur login melalui halaman pada MySQL seperti di atas. Salah satu
reg_username maupun reg_userid dapat sess_login.php. perbedaan menggunakan session diban-
<td></td>
<td><input name=”submit” type=
”submit” value=” Login “></td>
</tr>
</table>
</form>
</body>
</html>
Mempersiapkan database.
header(“location: cookie_login.php”);
exit(); { untuk digunakan dalam membuat halaman
} header(“location: cookie_login.php”); login pada web. Kedua cara di atas tidak
?> exit(); ada yang baik maupun yang buruk,
<html> } keduanya dapat digunakan sesuai dengan
<head> ?> kebutuhan. Apabila dibutuhkan untuk
<title>Halaman Setelah Login</title> memeriksa data user setiap kali memasuki
<body> Script ini perlu dicantumkan pada awal halaman web yang dilindungi, Anda dapat
Selamat datang <?echo “$cookie_ setiap halaman yang ingin dilindungi. menggunakan variabel cookies. Namun bila
username”;?><br> Dengan demikian, halaman tersebut tidak Anda menginginkan kemudahan atau tidak
Anda telah login sebagai <?echo dapat dibuka oleh user dengan memerlukan validasi dengan database di
“$cookie_userid”;?><br> mengetikkannya secara langsung dengan setiap halaman yang dilindungi, Anda dapat
<a href=”cookie_logout.php”>Logout menambahkannya pada url tanpa melalui menggunakan session dalam proses
</a> login terlebih dahulu. autentifikasi.
</body> Untuk proses logout menggunakan Saat ini, baru terdapat satu user di
</html> cookies kita cukup menghapus isi vaiabel dalam database login. Untuk menambahkan
cookies dengan menggunakan perintah data user baru Anda dapat membuat form
File cookie_default.php sama keguna- yang sama dengan waktu menciptakannya, baru menggunakan script PHP, semua
annya dengan file sess_default.php, di yaitu dengan perintah setcookies(). proses memasukkan data ke dalam tabel di
sinilah awal halaman web yang sesungguh- Berikut ini merupakan proses logout database dilakukan oleh script php
nya yang ingin ditampilkan kali pertama halaman otentifikasi yang menggunakan sehingga Anda tidak perlu mengetikkannya
pada user yang telah otentifikasi. cookies: langsung pada command line MySQL
Namun sebelum tag html yang // File cookie_logout.php seperti saat kita memasukkan user ‘stefan’
sebenarnya perlu dilakukan pencocokan <?php ke dalam database login.
kembali antara data yang terdapat dalam require “function.php”; Kita telah merasakan bahwa membuat
cookies dengan data yang terdapat dalam hapusCookies(); halaman login dengan session maupun
database. Sama halnya dengan session. header(“location: cookie_login.php”); cookies bukan hal yang sulit. Dengan
<?php ?> berbekal pengetahuan tentang session dan
require “function.php”; cookies, Anda dapat membuat login untuk
if(!autentifikasiUser($cookie_userid, Mungkin dari benak Anda muncul website Anda sendiri. Selamat mencoba!
$cookie_password)) pertanyaan cara manakah yang lebih baik Stefan (stefan_ay@plasa.com)