我的更新查询不工作


My update queries won't work

我已经有了一个基本的注册、登录、个人资料页面网页,最近开始实现忘记密码功能。

一切似乎都在运行,但我的更新查询似乎没有触发。

例如,我忘记密码页面上的代码创建一个新的重置键,如果电子邮件地址和东西匹配,然后电子邮件代码内的链接(即www.mydomain.net/forgotpassword.php?key=xxx)。

页面在您登陆时测试是否存在一个键,其代码如下:

include ('database_connection.php');
session_start();
if($_GET['key'])
{
    $key = $_GET['key'];
     $query_check_key = "SELECT * FROM password_reset WHERE Reset_link='$key' AND Expiration>=NOW() AND used=0";
     $result_check_key = mysqli_query($dbc, $query_check_key);
     $result_check_row = $result_check_key->fetch_array(MYSQLI_ASSOC);
     if(!$result_check_key) {
        echo "Error";
     }
      if (mysqli_num_rows($result_check_key) == 1)
      {
         // Update the database to set the "used" field to 1
        $query_link_used = "UPDATE password_reset SET Used=1 WHERE Reset_link='$key'";
        $result_link_used = mysqli_query($dbc, $query_activate_account) ;
        $_SESSION['Memberid'] = $result_check_row['Memberid']; 
        header("Location: reset_password.php");
      }
}
当页面被重定向到reset_password.php并且会话被正确创建时,if语句的计算结果为true。但是当我检查数据库表时,Used字段没有更新。

同样,在reset_password.php页面上,更新查询也不起作用:

if (empty($error))
        {
            //Query to change password
            $query_change_password = "UPDATE members SET Password=$hashed_password WHERE Memberid=$Memberid";
            $result_change_password = mysqli_query($dbc, $query_change_password);
            if (mysqli_affected_rows($dbc) > 0)//if update query was successful
            {
                echo '<div class="success">Your password has now been reset. You may now <a href="login.php">Log in</a></div>';
            } else
            {
                echo '<div class="errormsgbox">Oops !Your password could not be reset. Please contact the system administrator.</div>';
            } 
            mysqli_close($dbc);
        }

错误数组绝对为空,检查受影响行的if语句在返回false时保持为0,并退回到else语句。

我在PHPMyAdmin运行查询,他们工作得很好,所以我看不出问题是什么。如有任何帮助,不胜感激。

在reset_password.php页面启动会话并更新查询字符串:

session_start();
if (empty($error))
{
    $Memberid = $_SESSION['Memberid'];
    //Query to change password
    $query_change_password = "UPDATE members SET Password='$hashed_password' WHERE Memberid='$Memberid'";