Php 用户密码重置功能

Php 用户密码重置功能,php,html,mysql,select,passwords,Php,Html,Mysql,Select,Passwords,我试图在php网站上实现一个更改密码的功能。其想法是,其详细信息存储在数据库中的注册成员可以更改其密码,方法是先输入旧密码,然后再输入新密码两次。完成后,他们单击更改密码。但是,当单击此按钮时,屏幕上会显示“查询未工作”,这使我认为数据库连接下的“$Query”有问题。有人能帮我吗 <?php session_start(); $user = $_SESSION['dohare11']; if ($user) { if ($_POST['submit']) { //

我试图在php网站上实现一个更改密码的功能。其想法是,其详细信息存储在数据库中的注册成员可以更改其密码,方法是先输入旧密码,然后再输入新密码两次。完成后,他们单击更改密码。但是,当单击此按钮时,屏幕上会显示“查询未工作”,这使我认为数据库连接下的“$Query”有问题。有人能帮我吗

 <?php

 session_start();


 $user = $_SESSION['dohare11'];

if ($user)
{
    if ($_POST['submit'])
{
 //check fields


    $oldpassword = md5($_POST['oldpassword']);
    $newpassword = md5($_POST['newpassword']);
    $repeatnewpassword = md5($_POST['repeatnewpassword']);
          //check password against db
    include("../connection/conn.php");

    $query = "SELECT password FROM cityfestusers WHERE username='$user'";
    mysqli_query($conn, $query) or die("Query didn't work");
    $row = mysqli_fetch_assoc($query);

    $oldpassworddb = $row['password'];


    //check passwords
    if ($oldpassword == $oldpassworddb) {
        //check new passwords
        if ($newpassword == $repeatnewpassword) {
            //success
            //change password in db
            $change = "UPDATE cityfestusers SET password='$newpassword' WHERE username='$user'";
            mysqli_query($conn, $change);
            session_destroy();
            die("Your password has been changed. <a href='index.php'>Return</a> to the main menu");

          } else {
            die("New passwords don't match");
           }
         } else {
              die("Old password doesnt match!");
           }
      }        
   else
    {


    }
    echo"

     <form action='changepassword.php' method='POST'>
     Old Password: <input type='text' name='oldpassword'><p>
     New Password: <input type='password' name='newpassword'><br>
     Repeat New Password: <input type='password' name='repeatnewpassword'><br>
     <input type='submit' name='submit' value='Change Password'>
     </form>
              ";
          }

    //check passwords
    if ($oldpassword == $oldpassworddb) {
        //check new passwords
        if ($newpassword == $repeatnewpassword) {
            //success
            //change password in db
            $update = "UPDATE cityfestusers SET password='$newpassword' WHERE username='$user'";
           $result = mysqli_query($conn, $update);
           $row = mysqli_fetch_assoc($result);
            session_destroy();
            die("Your password has been changed. <a href='index.php'>Return</a> to the main menu");

        } else {
            die("New passwords don't match");
        }
    } else {
        die("Old password doesnt match!");
    }
}        
//检查密码
如果($oldpassword==$oldpassworddb){
//检查新密码
如果($newpassword==$repeatnewpassword){
//成功
//更改数据库中的密码
$update=“update cityfestusers SET password='$newpassword',其中username='$user';
$result=mysqli_查询($conn,$update);
$row=mysqli\u fetch\u assoc($result);
会话_destroy();
die(“您的密码已更改。转到主菜单”);
}否则{
死亡(“新密码不匹配”);
}
}否则{
死(“旧密码不匹配!”);
}
}        
否则 {

根据您需要在执行
mysqli\u查询后存储
结果

$result = mysqli_query($conn, $query);
如果结果对象
有数据,则应该对其进行任何进一步的处理。阅读本文档并执行与之相关的每个步骤

此外,是的,您的查询已失败:

echo 'Start with true'.PHP_EOL;

(true) or die('message1');

echo 'Start with false'.PHP_EOL;

(false) or die('message2');
给出:

Start with true
Start with false
message2

您可以从使用准备好的语句see开始,也许问题可以通过添加$row=mysqli\u fetch\u assoc($result)来解决;
Start with true
Start with false
message2