【问题标题】:How to update the forgotpassword by sending an email in mysql php如何通过在 mysql php 中发送电子邮件来更新忘记密码
【发布时间】:2016-04-19 14:44:43
【问题描述】:

您好,我有一个注册表单,如果我点击忘记密码,我会收到邮件,如果我点击该链接,它会重定向到此处的更改密码页面我无法更新特定用户的密码。这是我的代码。发送忘记密码邮件时是否可以发送隐藏值的确认代码

发送邮件:我将通过此代码收到电子邮件。

$email=$_POST['email'];

if($_POST['submit']=='Send')

{

$query="select * from registered where email='$email'"; 

$result=mysql_query($query) or die(error);

if(mysql_num_rows($result))

{

$to = $_POST['email'];

$from .= 'mail@gmail.com' . "\r\n\r\n";

$subject="Password Change link here";

$message.="Click on this link to change your password \r\n";

$message.="http://website.com/accounting/changepassword.php?email=$email";

$success = mail($to, $subject, $message);

echo "Forgot Password link has been sent to your email.Check your email to change your password";

}

else

{

echo "No user exist with this email id";

}

}

link: Click on this link to change your password
http://website.com/accounting/changepassword.php?email=mail@gmail.com

如果我点击该链接,它将重定向到 forgetten.php 页面,我的代码是

但我无法更新密码,谁能帮助我。如果我单击该链接,它将从此处重定向到此页面,它将更改密码.php

更改密码.php

<form method="POST" action="forgotten.php" id="myform">
<input type='hidden' value="<?php echo $_GET['email'];?>" name='email'>
<div class="form-group">
<label for="psw"><span class="glyphicon"></span> Password</label>
<input id="password" class="form-control" type="password" name="password" placeholder="Enter password here" required/>
</div>
<div class="form-group">
<label for="rpsw"><span class="glyphicon"></span>Confirm Password</label>
<input id="repassword" class="form-control" type="password" name="repassword" placeholder="Retype password here" required/>
</div>
<button type="submit"  class="btn btn-success btn-block"><span class="glyphicon glyphicon-off"></span> Create New Password</button>

forgetten.php 代码:

    <?php

    $connection = mysql_connect("localhost", "root", "account") or       die(mysql_error());

  $db = mysql_select_db("accounting", $connection);

  $email=$_POST['email'];

  $password=$_POST['password'];

  $repassword=$_POST['repassword'];

  $sql1="SELECT * FROM registered WHERE email ='$email'";

  $result1=mysql_query($sql1);

  $query = mysql_query("update registered SET password = '$password', repassword ='$repassword' WHERE email='$email'");

 if($query)

 {

 $to = $_POST['email'];

 $from .= 'mail@gmail.com' . "\r\n\r\n";

 $subject="Password Changed";

 $message.="your password has been changed successfully. \r\n";     

 $success = mail($to, $subject, $message);

 echo "Password has been changed successfully";

 }

    else{
        echo "Insertion Falied";
    }
?>

【问题讨论】:

    标签: php mysql email


    【解决方案1】:

    changepassword.php

    1. passwordrepassword之间将AND替换为,
    2. 删除列名email 中的'
    3. 'email'=$result1 更改为email='$email'

    改变

    $query = mysql_query("update registered SET password = '$password' AND repassword ='$repassword' WHERE 'email'=$result1");
    

    $query = mysql_query("update registered SET password = '$password', repassword ='$repassword' WHERE email='$email'");
    

    用户需求。

    因为,您正在向changepassword.php 发送电子邮件。 您必须为email 创建一个hidden field,它将被提交到forgottenpassword.php 页面。

    检查您的数据库连接。并且,交叉检查所有列名是否写正确。

    按原样使用此代码。

    ChangePassword.php

    <form method="POST" action="forgotten.php" id="myform">
        <input type='hidden' value="<?php echo $_GET['email'];?>" name='email'>
        <div class="form-group">
        <label for="psw"><span class="glyphicon"></span> Password</label>
        <input id="password" class="form-control" type="password" name="password" placeholder="Enter password here" required/>
        </div>
        <div class="form-group">
        <label for="rpsw"><span class="glyphicon"></span>Confirm Password</label>
        <input id="repassword" class="form-control" type="password" name="repassword" placeholder="Retype password here" required/>
        </div>
        <button type="submit"  class="btn btn-success btn-block"><span class="glyphicon glyphicon-off"></span> Create New Password</button>
    </form>
    

    forgotten.php

    <?
    $connection = mysql_connect("localhost", "root", "") or die(mysql_error());
    $db = mysql_select_db("db_name", $connection);
    
    $email=$_POST['email'];
    $password=$_POST['password'];
    $repassword=$_POST['repassword']; 
    
    $sql1="SELECT * FROM registered WHERE email ='$email'";
    $result1=mysql_query($sql1);
    
    $query = mysql_query("update registered SET password = '$password', repassword ='$repassword' WHERE email='$email'");
    
    if($query)
    {
        $to = $email;
        $from = 'mail@gmail.com';
        $subject="Password Changed";
        $message.="your password has been changed successfully. ";      
        $success = mail($to, $subject, $message);
        echo "Password has been changed successfully";
    }
    ?>
    

    【讨论】:

    • 不,它不工作并且不显示任何成功或失败消息
    • 嗨@Nagu,首先,它会转到 changepassword.php 页面。您在哪里填写/插入 passwordrepassword 值。之后它会进入任何提交页面&lt;form&gt; 的代码在哪里?
    • 我刚刚更正了您的错误。您的查询中存在哪个。如果它没有显示成功消息或其他,那么您的代码中有错误。要更正,您还必须提供&lt;form&gt; 的代码。然后,只有我们才能找到确切的问题。使用&lt;form&gt; 代码@Nagu 更新您的问题
    • 确认密码
    • @Nagu 你应该接受 Nana 的回答,因为他花了所有时间为你解决这个问题。访问meta.stackexchange.com/questions/5234/…,然后回来对复选标记做同样的事情,直到它变成绿色。
    【解决方案2】:

    它正在工作

    <?php
     $connection = mysql_connect("localhost", "root", "") or die(mysql_error());
     $db = mysql_select_db("db_name", $connection);
    
     $email=$_POST['email'];
     $password=$_POST['password'];
     $repassword=$_POST['repassword']; 
    
     $sql1="SELECT * FROM registered WHERE email ='$email'";
     $result1=mysql_query($sql1);
    
     $query = mysql_query("update registered SET password = '$password', repassword ='$repassword' WHERE email='$email'");
    
    if($query)
    {
    $to = $email;
    $from = 'mail@gmail.com';
    $subject="Password Changed";
    $message.="your password has been changed successfully. ";      
    $success = mail($to, $subject, $message);
    echo "Password has been changed successfully";
    }
    

    ?>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-13
      • 2016-08-31
      • 2011-02-19
      • 2015-04-17
      • 2015-06-22
      • 2013-03-04
      • 2015-10-21
      • 2011-07-23
      相关资源
      最近更新 更多