|
Saya banyak mendapatkan pertanyaan seputar cara membuat fasilitas
"forget password" pada aplikasi web. Untuk itu pada kesempatan kali
ini saya akan mencoba berbagai konsep dan logika mengenai cara
pembuatan fasilitas "forget password" ini. Sebelumnya saya akan
jelaskan terlebih dahulu apa itu fasilitas "forget password".
Fasilitas ini seringkali kita jumpai pada jasa layanan web, misalnya
webmail, portal, social network (Friendster, Orkut dan lain-lain).
Intinya fasilitas "forget password" ini ditujukan bagi orang-orang
yang memiliki account di suatu layanan web dan dia lupa dengan
password account yang dimilikinya. Sekarang mari kita coba untuk
mensimulasikan pembuatan fasilitas "forget password" ini. Ceritanya
saya akan membuat sebuah aplikasi web dengan fasilitas login.
Aplikasi web ini adalah aplikasi web mirip seperti friendster. Mari
kita buat struktur database-nya (dengan MySQL).
create table
anggota
(
uname varchar(20),
passwd varchar(30),
nama varchar(100),
alamat varchar(100),
email varchar(255)
)
Kemudian coba isi dengan beberapa data seperti berikut ini.
insert into
anggota (uname,nama,email) values ('ari','Ari','ari@sony-ak.com');
insert into anggota (uname,nama,email) values
('agus','Agus','agus@sony-ak.com');
insert into anggota (uname,nama,email) values
('budi','Budi','budi@sony-ak.com');
insert into anggota (uname,nama,email) values
('ika','Ika','ika@sony-ak.com');
Struktur database di atas sangatlah sederhana, karena pada
simulasi ini kita hanya membutuhkan satu tabel saja. Dari tabel
anggota di atas, maka kolom-kolom yang akan kita manfaatkan hanya
ada dua, yaitu uname dan email. Kolom uname akan kita gunakan untuk
mencari username orang yang lupa password-nya. Sedangkan kolom email
akan kita gunakan untuk mengirimkan e-mail yang berisi informasi
password kepada username yang lupa password-nya tadi.
Berikut ini adalah gambar layar login "bohong-bohongan" dari
aplikasi kita dan berisi link untuk ke halaman "forget password".

Sekarang kita akan buat tampilan dari halaman "forget password"
nya.

Berikut ini adalah potongan dari code tag FORM dari halaman di
atas.
<form
method="POST" action="p_forget_password.php">
<p>Masukkan username Anda. Berikutnya kami akan mengirimkan password
ke
alamat e-mail yang terasosiasi dengan username tersebut.</p>
<p>Username: <input type="text" name="username" size="20"></p>
<p><input type="submit" value="Send Password" name="B1"></p>
</form>
Jika Anda menekan tombol "Send Password" pada halaman "forget
password" di atas, maka dia akan menjalankan file
p_forget_password.php. File p_forget_password.php inilah yang akan
berisi script PHP kita untuk mencari username dan mengirimkan
password ke alamat e-mail si pemegang username tersebut.
Sekarang saya akan jabarkan logika dan konsep dari apa yang akan
kita lakukan pada script p_forget_password.php tersebut.
- Melakukan koneksi ke database
Untuk ini Anda harus tahu cara koneksi ke database, dalam hal
ini MySQL.
- Melakukan query ke database untuk mencari username yang
dimaksud
Untuk ini Anda harus paham perintah SQL SELECT.
- Mengirimkan data password ke e-mail si pemegang username
tadi
Untuk ini Anda harus mengetahui cara mengirim e-mail dengan PHP
(menggunakan fungsi mail()).
Konsep di atas adalah konsep yang sangat dasar sekali bagi suatu
fasilitas "forget password" dan saya harap Anda mengerti. Apabila
Anda sudah paham, maka akan sangat mudah nantinya bagi Anda untuk
mengembangkannya lebih lanjut.
Berikut ini adalah contoh isi script p_forget_password.php.
Script ini merupakan implementasi dari konsep di atas.
<?
//isi variabel untuk kepentingan mysql
$server = "localhost"; //isi dengan nama server database mysql
$username = "cyber"; //isi dengan username mysql
$password = "cyberpass"; //isi dengan password db mysql
$db_name = "testdb"; //isi dengan nama db mysql
//lakukan koneksi ke database
$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 !!");
//tampung variabel dari form forget_password.htm
$uname = $_POST['username'];
//lakukan query ke database untuk mencari username tersebut
$profile = mysql_query("select * from anggota where uname = '" . $uname .
"'", $db);
$rowcount = mysql_num_rows($profile);
if ($rowcount == 1) {
//username ditemukan, sekarang kirim e-mail...
$header = "From: Admin <admin@your.service.com>\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\n";
$header .= "Content-Transfer-Encoding: 8bit\n";
$header .= "X-Mailer: sony-ak.com (php; 1.00)\n";
$body = "Your password is: " . mysql_result($profile, 0,
"passwd");
mail(mysql_result($profile,0,"email"), "Your password info",
$body, $header);
header("Location: forget_password.htm");
}
?>
Silakan coba jalankan script di atas, modifikasi beberapa bagian
dan sesuaikan dengan keadaan Anda, dan coba lihat hasilnya. Anda
bisa mendownload source code lengkapnya pada bagian akhir
dari tulisan ini.
Referensi
- Dari berbagai sumber di internet dan pengalaman sendiri.
Demikian tulisan mengenai contoh cara membuat fasilitas "forget
password" dengan menggunakan PHP dan MySQL. Semoga berguna bagi Anda
semuanya. Jika ada komentar atau saran bisa dikirimkan melalui
ariesa.rahardjo@gmail.com. Jika Anda memiliki ide tulisan atau
tips menarik, silakan kirimkan saja kepada kami melalui e-mail
article@sony-ak.com. Untuk membaca tulisan menarik lainnya
silakan menuju ke situs Sony AK Knowledge Center dengan alamat di
www.sony-ak.com.
 |
Silakan download contoh lengkap script
melalui simbol di samping. |
Terima kasih.
| Send
your comments or suggestions |
|
|
|