Anda di halaman 1dari 2

Melanjutkan artikel sebelumnya tentang membership sebuah website yang dibangun dengan cms lokomedia.

Kali ini
kita bahas mengenai modul reset password member dengan menggunakan form email. Dalam script login dan
register lokomedia 1.6.1 menggunakan enkripsi sha1 untuk merahasiakan password member. Sehingga kalau kita
ingin mengetahui passwor member tentunya harus mendekripsikan kembali data yang ada pada database. Untuk
menjaga privasi member, sebaiknya password yang kita kirim ulang adalah password baru dengan menggenerate
huruf dan angka untuk membentuk kombinasi password baru tersebut. Mari kita lihat script module form reset
password berikut :
view sourceprint?

01.elseif($_GET['module']=='lupapassword'){
02.echo "<div id='content'>
03.<div id='content-detail'>";
04.echo "<span class=judul_head>&#187;<b>Reset Password</b></a></span><br
/><br />";
05.echo "<b>Kami akan mengirimkan username dan password Anda ke email.
Silahkan masukkan email Anda :</b>
06.<table width=100% style='border: 1pt dashed #0000CC;padding: 10px;'>
07.<form action=kirim-password.html method=POST>
08.<tr><td>Email</td><td> : <input type=text name=email size=40></td></tr>
09.</td><td colspan=2><input type=submit name=submit value=Kirim></td></tr>
10.</form></table><br /></div>
11.</div>";
12.}
Dari script diatas kita hanya menggunakan satu inputan saja yakni email user. Sehingga hanya email valid dan
terdaftar dalam databaselah yang akan dieksekusi. Email dalam database tidak diperbolahkan ganda atau satu email
tidak boleh digunakan untuk lebih dari satu orang member. Selanjutnya form ini akan mengarahkan ke module
kirimpassword berikut :
view sourceprint?

01.elseif ($_GET['module']=='kirimpassword'){
02.echo "<div id='content'>
03.<div id='content-detail'>";
04.
05.$email=trim($_POST[email]);
06.
07.$cek_akun=mysql_num_rows(mysql_query("SELECT * FROM member WHERE
email='$email'"));
08.$nama=mysql_fetch_array(mysql_query("SELECT * FROM member WHERE
email='$email'"));
09.
10.$pola_email = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.
[a-z]{2,3}))$";
11.
12.if (empty($email)){
13.echo "Anda belum memasukkan apapun<br />
14.<a href=javascript:history.go(-1)><b>Ulangi Lagi</b>";
15.}
16.elseif (!eregi($pola_email,$email)){
17.echo "Email anda tidak valid<br />
18.<a href=javascript:history.go(-1)><b>Ulangi Lagi</b>";
19.}
20.else{
21.if($cek_akun==1){

22.function generate_random_string($name_length = 8) {
23.$alpha_numeric ='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345
6789';
24.return substr(str_shuffle($alpha_numeric), 0, $name_length);
25.}
26.$reset_pass = generate_random_string();
27.$kepada = "$email";
28.$judul = "Reset Password Anda";
29.$dari
= "From: noreply@cauza.web.id\r\n";
30.$dari .= "MIME-Version: 1.0\r\n";
31.$dari .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
32.$pesan = "Anda menggunakan fasilitas reset pasword pada
situshttp://cauza.web.id. Berikut akun yang Anda minta :<br>";
33.$pesan .= "Username : $nama[username] <br>";
34.$pesan .= "Password : $reset_pass <br>";
35.$reset_encrypt = sha1($reset_pass);
36.
37.mail($kepada,$judul,$pesan,$dari);
38.
39.mysql_query("UPDATE member SET password
= '$reset_encrypt'
40.WHERE email
= '$email'");
41.
42.echo "<span class=posting>&#187; <b>Reset Password</b></span><br /><br />";
43.echo "<p align=center><b>Silahkan cek email untuk memeriksa username dan
password Anda !<br /><a href='index.php'>Klik untuk kembali ke
beranda</a></b></p>";
44.} else {
45.echo "<span class=posting>&#187; <b>Reset Password</b></span><br /><br />";
46.echo "<p align=center>Maaf <b>Email</b> anda tidak terdaftar sebagai member
kami. <br /><a href='daftar.html'>Buat Akun</a></p>";
47.}
48.}
49.echo "</div>
50.</div>";
51.}
Bisa dilihat dalam script tersebut akan menggenerate pasword baru dengan sebuah fungsi, kemudian
mengirimkannya ke email user diteruskan dengan mengenkripsi password baru tersebut yang selanjutnya disimpan
dalam database.
Yang terakhir jangan lupa untuk menambahkan aturan dalam .htaccess dengan script berikut :
view sourceprint?

1.RewriteRule ^lupa-password\.html$ media.php?module=lupapassword&id=$1 [L]


2.RewriteRule ^kirim-password\.html$ media.php?module=kirimpassword&id=$1 [L]
Menggunakan metode reset password seperti ini mempunyai sedikit kelemahan yaitu bisa dimanfaatkan orang iseng
untuk mereset pasword kita kapanpun ketika orang iseng ini tahu email yang kita gunakan dalam membership
website. Walaupun orang tersebut tidak bisa mengakses email kita, namun hal ini bisa membuat kita tidak nyaman.
Sebaiknya reset pasword adalah dengan dua tahapan. Pertama user memasukkan email untuk mendapatkan link
konfirmasi reset password, tahap selanjutnya adalah menggunakan link tersebut untuk mendapatkan password baru.
Maka jika ada orang lain yang mencoba mereset password kita, kita abaikan saja link yang dikirimkan tersebut.

Anda mungkin juga menyukai