Skip to content

Cauza Multimedia Creatifa


IDCloudHost | SSD Cloud Hosting Indonesia
Menu
  • Home
  • Privacy Policy
  • Youtube
HomeWebsiteRegister, Login, dan Forgoten Password ala Lokomedia (Lanjutan)

Register, Login, dan Forgoten Password ala Lokomedia (Lanjutan)

November 25, 2012

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 :

elseif($_GET['module']=='lupapassword'){
	echo "<div id='content'>          
          <div id='content-detail'>";
  echo "<span class=judul_head>&#187;<b>Reset Password</b></a></span><br /><br />";
  echo "<b>Kami akan mengirimkan username dan password Anda ke email. Silahkan masukkan email Anda :</b>
        <table width=100% style='border: 1pt dashed #0000CC;padding: 10px;'>
        <form action=kirim-password.html method=POST>
        <tr><td>Email</td><td> : <input type=text name=email size=40></td></tr>
        </td><td colspan=2><input type=submit name=submit value=Kirim></td></tr>
        </form></table><br /></div>
    </div>"; 
}

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 :

elseif ($_GET['module']=='kirimpassword'){
  echo "<div id='content'>          
          <div id='content-detail'>";

$email=trim($_POST[email]);

$cek_akun=mysql_num_rows(mysql_query("SELECT * FROM member WHERE email='$email'"));
$nama=mysql_fetch_array(mysql_query("SELECT * FROM member WHERE email='$email'"));

$pola_email = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3}))$";

if (empty($email)){
  echo "Anda belum memasukkan apapun<br />
  	      <a href=javascript:history.go(-1)><b>Ulangi Lagi</b>";
}
elseif (!eregi($pola_email,$email)){
  echo "Email anda tidak valid<br />
  	      <a href=javascript:history.go(-1)><b>Ulangi Lagi</b>";
}
else{
	if($cek_akun==1){
	function generate_random_string($name_length = 8) {
		$alpha_numeric = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
		return substr(str_shuffle($alpha_numeric), 0, $name_length);
	}
		$reset_pass = generate_random_string();		
		$kepada 	= "$email";
		$judul		= "Reset Password Anda";
		$dari 		= "From: noreply@cauza.web.id\r\n";
		$dari 	.= "MIME-Version: 1.0\r\n";
		$dari 	.= "Content-Type: text/html; charset=ISO-8859-1\r\n";
		$pesan 		= "Anda menggunakan fasilitas reset pasword pada situs https://cauza.web.id. Berikut akun yang Anda minta :<br>";
		$pesan 	.= "Username : $nama[username] <br>";
		$pesan 	.= "Password : $reset_pass <br>";
		$reset_encrypt = sha1($reset_pass);

mail($kepada,$judul,$pesan,$dari);	

mysql_query("UPDATE member SET password       = '$reset_encrypt'  
                             WHERE email   = '$email'");	
							 
		echo "<span class=posting>&#187; <b>Reset Password</b></span><br /><br />"; 
  		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>";
	} else { 
		echo "<span class=posting>&#187; <b>Reset Password</b></span><br /><br />"; 
  		echo "<p align=center>Maaf <b>Email</b> anda tidak terdaftar sebagai member kami. <br /><a href='daftar.html'>Buat Akun</a></p>";
	}
}
  echo "</div>
    </div>";            
}

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 :

RewriteRule ^lupa-password\.html$ media.php?module=lupapassword&id=$1 [L]
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.

Tags:email activation, login, PHP, register

Related Posts

Refresh Captcha Lokomedia

Menambah Template Lokomedia dan Mengaktifkannya

Membuat Modul Baru pada CMS Lokomedia (Studi Kasus Modul Kelas pada Website Sekolah)

About The Author

cauza

CEO at CMC (Cauza Multimedia Creatifa), Senior of IT & Multimedia Departement at PT. Zafa Mulia Mandiri (Zafa Tour) Lives in Palembang

Recent Posts

  • Menulis HTML Pertamamu dan Melihatnya Hidup di Browser!
  • Mereka Ada di Mana-Mana, Tapi Sering Diabaikan: Yuk Kenalan dengan Superglobals PHP
  • Struktur Dasar HTML – Anatomi Halaman Web
  • Kotak Ajaib di PHP: Fungsi-Fungsi Bawaan yang Wajib Kamu Kenal
  • Apa Itu HTML? – Yuk Kenalan dengan Biangnya Website

Recent Comments

  • willy cauza on Menu Drop Down Multilevel (Unlimited) pada Lokomedia
  • willy cauza on FPDI : Manipulasi Dokumen PDF (Split Halaman PDF)
  • diva surabaya on FPDI : Manipulasi Dokumen PDF (Split Halaman PDF)
  • cauza on Menu Drop Down Multilevel (Unlimited) pada Lokomedia
  • Ayii Muzzarot on Menu Drop Down Multilevel (Unlimited) pada Lokomedia

Archives

  • June 2025
  • May 2025
  • July 2018
  • July 2013
  • May 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012

Wordpress Blog

  • Kelola Pembayaran Jamaah — Mulai dari Master Metode hingga Upload Bukti Bayar – AHU PART 11
    July 4, 2025
    Dalam artikel ini kita akan mulai membuat fitur pembayaran untuk memudahkan jamaah/admin mencatat dan mengelola pembayaran yang mendukung berbagai metode pembayaran. Kemudian juga untuk merekam […]
  • Pemberkasan Digital: Upload Scan KTP, Paspor, dan Vaksin Tanpa Ribet – AHU PART 10
    July 2, 2025
    Agar data dokumen KTP, Paspor dan Vaksin jamaah tersimpan rapi mari kita buatkan fitur upload dokumen jamaah untuk memudahkan verifikasi yang cepat dan aman. Selain […]
  • Fitur Kelola Jamaah — Tambah, Ubah, dan Hapus Sesuai Pendaftaran – AHU PART 9
    June 26, 2025
    Setiap pendaftaran bisa memiliki banyak jamaah — sesuai jumlah yang dipesan (qty_jamaah). Tapi kadang data jamaah tidak diisi semua saat awal, jadi kita perlu fitur […]
  • Batasi Jumlah, Lindungi Kuota — Validasi Ketat untuk Pendaftaran Jamaah – AHU PART 8
    June 25, 2025
    Seiring bertambahnya fitur, aplikasi kita juga harus makin cerdas. Salah satu logika penting dalam sistem perjalanan ibadah adalah membatasi jumlah jamaah agar tidak melebihi kapasitas: […]
  • Satu Klik Menuju Tanah Suci — Fitur Pendaftaran Jamaah yang Dinamis & Fleksibel – AHU PART 7
    June 25, 2025
    Kalau sebelumnya kita sudah bisa membuat dan mengelola paket perjalanan, sekarang waktunya membuka akses untuk jamaah mendaftar. Tapi, pendaftaran ini nggak bisa asal simpan data […]
© 2025 Cauza Multimedia Creatifa | WordPress Theme by Superb WordPress Themes
Back to Top ↑