Nama domain www.web-buya.com diganti dengan nama www.arofat.com



Indonesian Arabic English
Kamis, April 24, 2014
Tutorial PHP - Membuat Script Lupa Password Dan Cara Meresetnya

PHP - Membuat Script Lupa Password Dan Cara Meresetnya

php-mysqlAssalamu'alikum gan,lama baru bisa buat artikel lagi,maklum masih ada beberapa project yang masih harus dikerjakan :D,baiklah disela-sela kesempatan saya kali ini, saya akan coba membahas tentang script code php lupa password dan cara meresetnya. Saya anggap agan semua sudah punya scirpt code php tentang register dan login membernya.jika diantara agan semua ada yang belum punya,silahkan agan pelajari artikel cara membuat form register dan artikel cara login member. Ok langsung ke script code php reset passwordnya,pertama-tama agan buat file lupa_password.php lalu masukan script berikut :

 

<?php
include 'koneksi.php';


/******************* ACTIVATION BY FORM**************************/
if ($_POST['doReset']=='Reset')
{
$err = array();
$msg = array();

foreach($_POST as $key => $value) {
    $data[$key] = filter($value);
}
if(!isEmail($data['user_email'])) {
$err[] = "ERROR - Please enter a valid email";
}

$user_email = $data['user_email'];

//check if activ code and user is valid as precaution
$rs_check = mysql_query("select id from users where user_email='$user_email'") or die (mysql_error());
$num = mysql_num_rows($rs_check);
  // Match row found with more than 1 results  - the user is authenticated.
    if ( $num <= 0 ) {
    $err[] = "Error - Sorry no such account exists or registered.";
    //header("Location: forgot.php?msg=$msg");
    //exit();
    }


if(empty($err)) {

$new_pwd = GenPwd();
$pwd_reset = PwdHash($new_pwd);
//$sha1_new = sha1($new);    
//set update sha1 of new password + salt
$rs_activ = mysql_query("update users set pwd='$pwd_reset' WHERE
                         user_email='$user_email'") or die(mysql_error());
                        
$host  = $_SERVER['HTTP_HOST'];
$host_upper = strtoupper($host);                        
                        
//send email

$message =
"Here are your new password details ...\n
User Email: $user_email \n
Passwd: $new_pwd \n

Thank You

Administrator
$host_upper
______________________________________________________
THIS IS AN AUTOMATED RESPONSE.
***DO NOT RESPOND TO THIS EMAIL****
";

    mail($user_email, "Reset Password", $message,
    "From: \"Member Registration\" <auto-reply@$host>;\r\n" .
     "X-Mailer: PHP/" . phpversion());                        
                        
$msg[] = "Your account password has been reset and a new password has been sent to your email address.";                        
                        
//$msg = urlencode();
//header("Location: forgot.php?msg=$msg");                        
//exit();
 }
}
?>
<html>
<head>
<title>Forgot Password</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/jquery.validate.js"></script>
  <script>
  $(document).ready(function(){
    $("#actForm").validate();
  });
  </script>
<link href="/styles.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="5" class="main">
  <tr>
    <td colspan="3">&nbsp;</td>
  </tr>
  <tr>
    <td width="160" valign="top"><p>&nbsp;</p>
      <p>&nbsp; </p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p></td>
    <td width="732" valign="top">
<h3 class="titlehdr">Forgot Password</h3>

      <p>
        <?php
      /******************** ERROR MESSAGES*************************************************
      This code is to show error messages
      **************************************************************************/
    if(!empty($err))  {
       echo "<div class=\"msg\">";
      foreach ($err as $e) {
        echo "* $e <br>";
        }
      echo "</div>";    
       }
       if(!empty($msg))  {
        echo "<div class=\"msg\">" . $msg[0] . "</div>";

       }
      /******************************* END ********************************/      
      ?>
      </p>
      <p>If you have forgot the account password, you can <strong>reset password</strong>
        and a new password will be sent to your email address.</p>
    
      <form action="lupa_password.php" method="post" name="actForm" id="actForm" >
        <table width="65%" border="0" cellpadding="4" cellspacing="4" class="loginform">
          <tr>
            <td colspan="2">&nbsp;</td>
          </tr>
          <tr>
            <td width="36%">Your Email</td>
            <td width="64%"><input name="user_email" type="text" class="required email" id="txtboxn" size="25"></td>
          </tr>
          <tr>
            <td colspan="2"> <div align="center">
                <p>
                  <input name="doReset" type="submit" id="doLogin3" value="Reset">
                </p>
              </div></td>
          </tr>
        </table>
        <div align="center"></div>
        <p align="center">&nbsp; </p>
      </form>
      
      <p>&nbsp;</p>
       
      <p align="left">&nbsp; </p></td>
    <td width="196" valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="3">&nbsp;</td>
  </tr>
</table>

</body>
</html>

Oke gan sekian dulu pembahasan php kali ini,jangan lupa dikomeng jika ada code php yang tdk berfungsi :)

Update Script : Maaf gan waktu sy menulis artikel ini banyak script yg lupa saya muat pada artikel ini, jadi untuk perkembangan script bisa dilihat pada form komentar dibawah.


Related news items:
Newer news items:
Older news items:

COMMENTS  

Guest
Dikirim pada
Mei 16, 2012
Dikirim oleh
Guest
-2 script diatas apa satu file? trus script forgot.php kok g ada? pada script foreach($_POST as $key => $value) {
$data[$key] = filter($value);
kata filter itu fungsi atau apa y? error kata filter...
thanks for knowledge....
Arofat.Com @Admin
Dikirim pada
Mei 16, 2012
Dikirim oleh
Arofat.Com @Admin
+1 Quoting Putra:
script diatas apa satu file? trus script forgot.php kok g ada? pada script foreach($_POST as $key => $value) {
$data[$key] = filter($value);
kata filter itu fungsi atau apa y? error kata filter...
thanks for knowledge....

maaf revisi,script diatas dimasukan pada 1 file saja lupa_password.p hp atau apalah trserah namanya,kemudia n kode
Code:if ( $num <= 0 ) {
$err[] = "Error - Maaf tidak ada akun yang terdaftar.";
//header("Location: forgot.php?msg=$msg");
//exit();
forgot.php disesuaikan dg nama filenya bos,klu nama fileny lupa_password.p hp makacodenya mnjadi
Code:if ( $num <= 0 ) {
$err[] = "Error - Maaf tidak ada akun yang terdaftar.";
//header("Location: lupa_password.p hp?msg=$msg");
//exit();
Guest
Dikirim pada
Mei 23, 2012
Dikirim oleh
Guest
+1 bisa jelaskan maksud dari script ini g?
if ($_POST['doReset']=='Reset')
{
$err = array();
$msg = array();

foreach($_POST as $key => $value) {
$data[$key] = filter($value);
}
if(!isEmail($data['user_email'])) {
$err[] = "ERROR - Silahkan masukan Email yang benar";
}

ada error di kata filter dan isEmail
Arofat.Com @Admin
Dikirim pada
Mei 23, 2012
Dikirim oleh
Arofat.Com @Admin
+1 Quoting Putra:
bisa jelaskan maksud dari script ini g?
if ($_POST['doReset']=='Reset')
{
$err = array();
$msg = array();

foreach($_POST as $key => $value) {
$data[$key] = filter($value);
}
if(!isEmail($data['user_email'])) {
$err[] = "ERROR - Silahkan masukan Email yang benar";
}

ada error di kata filter dan isEmail

Code:($data['user_email'])
kata user_email diatas = nama field tabel punya agan,silahkan disesuaikan aja gan nama field nya.dan untuk fungsi isEmail silahkan masukan script berikut :
Code:function isEmail($email){
return preg_match('/^\S+@[\w\d.-]{2,}\.[\w]{2,6}$/iU', $email) ? TRUE : FALSE;
}
Guest
Dikirim pada
Mei 23, 2012
Dikirim oleh
Guest
-1 $data[$key] = filter($value);

kata filter itu fungsi bawaan php atau bikin sendiri y? error di kata filter gan...


thanks for knowledge..... :lol:
Arofat.Com @Admin
Dikirim pada
Mei 24, 2012
Dikirim oleh
Arofat.Com @Admin
0 Quoting Putra:
$data[$key] = filter($value);

kata filter itu fungsi bawaan php atau bikin sendiri y? error di kata filter gan...


thanks for knowledge..... :lol:

saya sih disini tidak error gan, coba dicopy pesan error nya gan, fungsi filter disitu untuk memfilter apabila ada yang coba2 menginput kode2 berbahaya.
Guest
Dikirim pada
Mei 24, 2012
Dikirim oleh
Guest
0 Fatal error: Call to undefined function filter() in C:\xampp\htdocs \web\lupa-passw ord.php on line 10

thanks for knowledge..... :lol:
Arofat.Com @Admin
Dikirim pada
Mei 24, 2012
Dikirim oleh
Arofat.Com @Admin
0 Quoting Putra:
Fatal error: Call to undefined function filter() in C:\xampp\htdocs\web\lupa-password.php on line 10

thanks for knowledge..... :lol:

owh ntu to, utk fungtion filter nya silahkan masukan script ini gan :
Code:function filter($data) {
$data = trim(htmlentities(strip_tags($data)));

if (get_magic_quotes_gpc())
$data = stripslashes($data);

$data = mysql_real_escape_string($data);

return $data;
}
Guest
Dikirim pada
Mei 25, 2012
Dikirim oleh
Guest
0 $new_pwd = GenPwd();
$pwd_reset = PwdHash($new_pw d);

fungsi GenPwd() dan PwdHash($new_pw d kok g ada ya gan... :lol:

thanks for knowledge....
Arofat.Com @Admin
Dikirim pada
Mei 26, 2012
Dikirim oleh
Arofat.Com @Admin
0 Quoting Putra:
$new_pwd = GenPwd();
$pwd_reset = PwdHash($new_pwd);

fungsi GenPwd() dan PwdHash($new_pwd kok g ada ya gan... :lol:

thanks for knowledge....

:lol: maaf ya gan, lupa, variabel nya banyak yg saya pisah soalnya.
utk fungtin GenPwd() :
Code:function GenPwd($length = 7)
{
$password = "";
$possible = "0123456789bcdfghjkmnpqrstvwxyz"; //no vowels

$i = 0;

while ($i < $length) {


$char = substr($possible, mt_rand(0, strlen($possible)-1), 1);


if (!strstr($password, $char)) {
$password .= $char;
$i++;
}

}

return $password;

}

untuk fungtion PwdHash() :
Code:function PwdHash($pwd, $salt = null)
{
if ($salt === null) {
$salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH);
}
else {
$salt = substr($salt, 0, SALT_LENGTH);
}
return $salt . sha1($pwd . $salt);
}
Guest
Dikirim pada
Jun 23, 2012
Dikirim oleh
Guest
0 Fungsi isEmail ny g ad y gan?
Ad peringatan:
Fatal Error... undefined function isEmail...
Arofat.Com @Admin
Dikirim pada
Jun 23, 2012
Dikirim oleh
Arofat.Com @Admin
0 Quoting Guest:
Fungsi isEmail ny g ad y gan?
Ad peringatan:
Fatal Error... undefined function isEmail...

ini gan
Code:function isEmail($email){
return preg_match('/^\S+@[\w\d.-]{2,}\.[\w]{2,6}$/iU', $email) ? TRUE : FALSE;
}

sudah saya tulis pada form komentar diatas, script diatas banyak yg belum sy muat pada artikel ini krn lupa, jadi bisa dilihat pada form komentar ukt script lengkapnya.
roy
Dikirim pada
Des 11, 2012
Dikirim oleh
roy
0 tolong pencerahannya gan,selalu error

Warning: include(koneksi .php) [function.inclu de]: failed to open stream: No such file or directory in C:\xampp\htdocs \fay\reset_pass word.php on line 2

Warning: include() [function.inclu de]: Failed opening 'koneksi.php' for inclusion (include_path=' .;C:\xampp\php\ PEAR') in C:\xampp\htdocs \fay\reset_pass word.php on line 2

Notice: Undefined index: doReset in C:\xampp\htdocs \fay\reset_pass word.php on line 6
Arofat.Com @Admin
Dikirim pada
Des 12, 2012
Dikirim oleh
Arofat.Com @Admin
0 Quoting roy:
tolong pencerahannya gan,selalu error

Warning: include(koneksi.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\fay\reset_password.php on line 2

Warning: include() [function.include]: Failed opening 'koneksi.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\fay\reset_password.php on line 2

Notice: Undefined index: doReset in C:\xampp\htdocs\fay\reset_password.php on line 6

maaf baru bisa bales gan, itu file " koneksi.php " nya sudah ada blm punya agan...?
acim
Dikirim pada
Des 17, 2012
Dikirim oleh
acim
0 semua udah benar, berjalan dengan sempurna.
tapi ada satu permasalah gan?

yaitu ketika saya mau login dan masukkan password yang baru selalu salah, padahal form passwordnya sudan di encript dengan md5.
mohon pencerahannya ga?
thank's :-)
Arofat.Com @Admin
Dikirim pada
Des 18, 2012
Dikirim oleh
Arofat.Com @Admin
0 Quoting acim:
semua udah benar, berjalan dengan sempurna.
tapi ada satu permasalah gan?

yaitu ketika saya mau login dan masukkan password yang baru selalu salah, padahal form passwordnya sudan di encript dengan md5.
mohon pencerahannya ga?
thank's :-)

kemungkinan pass ny blm kereset sama yg baru gan, coba login pake pass lama bisa apa tdk, klu msh bisa, berarti msh ada yg salah coding nya.
Aa
Dikirim pada
Feb 23, 2013
Dikirim oleh
Aa
0 Gan, mskin php ke blog gmn ya gan? (maap newbie) :lol:




Silahkan mengkopi artikel pada website ini dengan mencantumkan sumbernya.
Jika menemukan link yang mati, silahkan kontak kami atau anda bisa mengirimkan komentar
Setelah membaca artikel diatas jangan lupa kirim Komentarnya....!!!

TINGGALKAN KOMENTAR

Mohon perhatian kepada komentator...1). Kami berhak mengedit, menyortir bahkan memblok IP anda jika dipandang tidak sesuai dengan visi dan misi kami tanpa pemberitahuan terlebih dahulu. 2). Jika anda telah mengeklik tombol send dan komentar anda belum muncul, coba dulu klik tombol 'Refresh Comments List', atau mungkin komentar anda sedang menunggu persetujuan kami untuk dipublish. 3). Jika ikon anda ingin ditampilkan di kolom komentar, silakan daftarkan email anda di Gravatar.com. Terima kasih atas komentar dan perhatian anda.

Security code
Refresh

eXTReMe Tracker
Weblog ini dibuat sebagai sarana pembelajaran... Kami berusaha untuk menyimpan seluruh catatan yang kami kumpulkan ke dalam penyimpan data online ini untuk dapat dipakai bersama. Meskipun dengan segala keterbatasan dan waktu yang ada, sehingga masih banyak yang harus dibenahi. Segala sumber data kami masukan ke dalamnya, namun ada beberapa file yang lupa sumbernya. Sehingga mohon maaf jika ada pihak yang tidak berkenan... Untuk itu segala masukan dan saran sangat kami harapkan. Semoga bermanfaat...