Register, Login, dan Forgoten Password ala Lokomedia

Pertanyaan mengenai cara membuat form login dan register lokomedia sering saya jumpai di beragai tempat. Padahal sebenarnya dalam versi terbarunya yakni versi 1.6.1 script login membership lokomedia sudah tersedia didalam file kiri.php template eljquery. Hanya saja secara kasat mata dalam tampilan user tidak terlihat atau tidak dimunculkan. Kalau kita bisa teliti sebenarnya terlihat dalam halaman semua-download.html. Disana kita menemukan tulisan Silahkan login dulu untuk mengakses halaman ini. Namun ketika kita ikuti link yang disediakan maka akan muncul halaman error. Mari kita cek file .htaccess yang disertakan dalam update lokomedia 1.6.1. Memang tidak ditemukan aturan untuk mengarahkan ke halaman login.html seperti yang disarankan pada link login. Maka kita harus menambahkan script berikut dalam .htaccess

RewriteRule ^daftar\.html$ media.php?module=daftar&id=$1 [L]
RewriteRule ^daftar-aksi\.html$ media.php?module=daftaraksi&id=$1 [L]
RewriteRule ^login\.html$ media.php?module=login&id=$1 [L]
RewriteRule ^cek-login\.html$ media.php?module=ceklogin&id=$1 [L]
RewriteRule ^logout\.html$ media.php?module=logout&id=$1 [L]

Setelah kita tambahkan maka akan muncul form login untuk mengisikan username dan password. Tentu saja kita tidak tahu apa yang harus kita inputkan disana, karena kita memang belum memiliki akun disitus lokomedia ini. Dan ternyata dalam template eljquery sudah ada juga script modul registernya, tinggal kita buat saja link-nya dibawah form login menuju daftar.html dengan menambahkan sedikit script di modul login ini. Kira-kira jadinya seperti ini :

//halaman login member
elseif($_GET['module']=='login'){
	echo "<div id="content">          
          <div id="content-detail">";
  echo "<span class="judul_head">»<b>Login</b></span><br><br>";
	if(empty($_SESSION[session_username])){
  echo "<b>Silahkan Anda mengisi form login :</b>
        <form action="cek-login.html" method="POST">
<table width="100%" style="border: 1pt dashed #0000CC;padding: 10px;">
        <tbody><tr><td>Username</td><td> : <input type="text" name="username" size="40"></td></tr>
        <tr><td>Password</td><td> : <input type="password" name="password" size="40"></td></tr>
        <tr><td colspan="2"><input type="submit" name="submit" value="Login"></td></tr>
        </tbody></table></form><br>Belum punya akun ? Klik <a href="daftar.html">Daftar</a> | <a href="lupa-password.html">Lupa Password</a>";
		} else {
 		 echo "
        <p></p><center>Anda sudah login.</center><p></p>";
		}
  echo "</div>
    </div>"; 
}

Setelah kita menemukan halaman register atau pendaftaran member ternyata masih terjadi kesalahan ketika sudah memasukkan seluruh data yang diinputkan. Apa penyebabnya ? Kita cek script module daftar aksi yang merupakan kelanjutan dari modul daftar, maka disana data akan dimasukkan ke dalam tabel member. Yang ternyata tabel member ini belum ada dalam database lokomedia. Maka kita harus membuat tabel member ini pada halaman phpmyadmin dengan field nama, email, username, dan password. Sebenarnya hanya empat field tadi yang daibutuhkan namun ada baiknya untuk alasan kevalidan data member kita akan modifikasi tabelnya menjadi 10 field untuk keperluan pengembangan selanjutnya. Yakni register menggunakan metode aktivasi dari email member. Atau bisa juga kita gabung dalam tabel user dengan value level adalah member. Tapi itu malah bikin ribet karena harus merombak script. Jadi sebaiknya kita buat tabel member saja dengan rincian sebagai berikut

Field Jenis Keterangan
id_member INT(10) primary, auto_increment
nama VARCHAR (50)
email VARCHAR (50)
username VARCHAR (20)
password VARCHAR (60)
aktif ENUM (‘Y’,’N’) default (N)
kode_aktivasi VARCHAR (100)
tgl_lahir DATE
gender ENUM (‘L’,’P’)
photo_profil VARCHAR (50)

Atau import file member.sql berikut.

Sekarang silahkan coba register dan login, Insya Allah script akan berjalan normal. Cuma ada beberapa kendala pada beberapa link home setelah login pada halaman cek-login.html. Maka link tersebut harus kita ganti menuju index.php. Juga pada script modul logout location : home kita ganti dengan location : index.php.

member-login

Lantas bagaimana setelah kita login kita mau logout. Eh ternyata lagi link logout juga belum tersedia. Dimana kita akan meletakkannya? Supaya mudah dilihat maka letakkan link logout pada header menggantikan teks CMS GRATIS UNTUK INDONESIA. Scriptnya sebagai berikut :

     	<li><!--?php
if(!empty($_SESSION[session_username])){
 echo "Hai $_SESSION[session_username], Anda sudah login | <a href='logout.html'-->Logout";
 }else {
 echo"<a href="login.html">Login</a> | <a href="daftar.html">Daftar</a>";
 }
?>
</li>

Dari script diatas kita bisa melihat bahawa konten yang akan ditampilkan khusus untuk member dapat di tulis didalam kondisi ada sesi username yang aktif.

if(!empty($_SESSION[session_username])){
	//script content member only
}

Selesai kasus kita tentang register, login dan logout. Dan yang terakhir adalah module forgoten password yang memang belum ada pada template eljquery 1.6.1 ini. Klik lanjutkan untuk melihat artikel sambungan.