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