gpt4 book ai didi

php - mysql 查询没有给出正确的输出

转载 作者:行者123 更新时间:2023-11-29 13:29:35 24 4
gpt4 key购买 nike

我创建了一个表单供用户更改密码,其编程如下-

include("../database.php");
if(isset($_SESSION['user_name']))
{
$password=$_POST['new_password'];
$query="select password from login where username = '".$_SESSION['user_name']."' and password='".md5($password)."'";
echo $query."<br>\n";
$result=mysql_query($query) or die(mysql_error());
echo $result."<br>\n";
echo "abc<br>\n";
echo mysql_num_rows($result)."<br>\n";
if(mysql_num_rows($result))
{
echo "def";
$row=mysql_fetch_row($result);
$pass=$row['password'];
echo $pass;
if($pass==$password)
{
$query2="UPDATE login SET password='$password' WHERE username='$_SESSION[user_name]'";
echo $query2;
echo "Password changed successfully";
}
else
{
echo "You entered wrong current password";
}
}
else
{
echo "here";
}
}
else
{
header('Location:index.php');
}

它给出$result=0。所以它不会更新用户密码。它直接转到其他部分并给出“此处”所写的输出。有什么解决办法吗?

最佳答案

您使用一个变量 - 密码 - 做两件事:旧密码(与用户 ID 一起以 MD5 哈希形式保存在数据库中)和新密码(从用户传递到您的例程中)。

使它们成为两个不同的变量。第一个查询应根据数据库中密码的 MD5 设置“old_password”。您可以使用它来确认用户是否知道旧密码。

如果一切正常,则将新密码保存在数据库中。

关于php - mysql 查询没有给出正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19658368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com