gpt4 book ai didi

php/sql 查询返回错误的响应

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:44 27 4
gpt4 key购买 nike

好的,所以我正在运行一个重置密码脚本,它应该用 password01 的 sha1 散列版本替换密码,如果成功,它应该返回成功消息,否则返回失败消息,但它返回失败消息无论它是否有效,它总是如此!有任何想法吗?我已插入以下代码:

<?php 
session_start();
$host= $_SESSION["dbhost"];
$username= $_SESSION["dbuser"];
$password= $_SESSION["dbpass"];
$db_name= $_SESSION["dbname"];
$tbl_name="users"; // Table name

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$userid = $_POST['id'];
$password = 'password01';
$hashpass = sha1($password);

//$result = mysql_query("SELECT password FROM $tbl_name WHERE id='$userid'");
$sql=mysql_query("UPDATE $tbl_name SET password='$hashpass' where id='$userid'");

if (mysql_query($sql)) {
echo "<ul id='breadcrumbs-one'>";
echo "<li><a href=''>Users</a></li>";
echo "<li><a href='' class='current'>Reset</a></li>";
echo "</ul>";
echo "<div class='tn-box tn-box-color-3 mcenterlow'>";
echo "<p>The Opperation was Sucessful!<br><a href='?users'>Add Another?</a></p>";
echo "<div class='tn-progress'></div>";
echo "</div>";
}
else {
echo "<ul id='breadcrumbs-one'>";
echo "<li><a href=''>Users</a></li>";
echo "<li><a href='' class='current'>Reset</a></li>";
echo "</ul>";
echo "<div class='tn-box tn-box-color-1 mcenterlow'>";
echo "<p>The Opperation was Not Sucessful!<br><a href='?users'>Try Again?</a></p>";
echo "<div class='tn-progress'></div>";
echo "</div>";
}
?>

最佳答案

除了你的问题下面的评论之外,你的 if 失败的原因是你正在对 mysql_query< 的另一个调用的结果使用 mysql_query/.

要解决这个问题,您应该将条件更改为:

if ($sql) {

(对于 UPDATE 查询,mysql_query 成功时返回 true,失败时返回 false)

你真的应该切换到带有准备好的语句和绑定(bind)变量的 PDO(或 mysqli),以摆脱你遇到的 sql 注入(inject)问题。

关于php/sql 查询返回错误的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14617349/

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