php代码不工作,$query字符串不工作
格式化代码:php代码不工作,$query字符串不工作,php,mysqli,query-string,Php,Mysqli,Query String,格式化代码: <?php require_once 'connectvars.php'; if (isset($_POST['submit'])) { //set vars $oldpw = mysqli_real_escape_string($dbc, trim($_POST['oldpw'])); $newpw = mysqli_real_escape_string($dbc, t
<?php
require_once 'connectvars.php';
if (isset($_POST['submit'])) {
//set vars
$oldpw = mysqli_real_escape_string($dbc, trim($_POST['oldpw']));
$newpw = mysqli_real_escape_string($dbc, trim($_POST['newpw']));
$retype = mysqli_real_escape_string($dbc, trim($_POST['retype']));
$query = mysqli_query($dbc, 'SELECT password from user_info WHERE password = "hash(\'SHA256\',$oldpw)" and user_id = "$SESSION[\'user_id\']"'); // this line is "not working well"
if (strlen($newpw) < 7) {
if (strlen($newpw) > 32 ) {
if (mysqli_num_row($query) == 1) {
if ($newpw == $retype) {
mysqli_query($dbc, "UPDATE user_info SET password = 'hash('SHA256',$newpw)'");
$msg = "You successfully changed your password";
}
else {
$msg = "Your old password doesn't match.";
}
}
else {
$msg = "You must enter your old password correct.";
}
}
else {
$msg = "Your password must contain 32 characters or less.";
}
}
else {
$msg = "Your new password must contain at least 7 characters.";
}
?>
我认为您需要改进sql语法
'SELECT password
from user_info
WHERE password = "hash(\'SHA256\',$oldpw)"
and user_id = "$SESSION[\'user_id\']"'
可更正为
"SELECT password
from user_info
WHERE password = '" . hash('SHA256',$oldpw) ."'
and user_id = '" . $_SESSION['user_id'] . "'"
适当地逃脱绳子。尝试以同样的方式更正您的update语句。这是什么?-我只是打了个旗子。它不清楚…而且,你需要写你的问题,不仅仅是张贴你的代码。我看着我的水晶球,我看不到问题…嗯,煎饼!!!-让我们@JayBlanchard@JayBlanchard$SESSION
gee。。。那个s.G.怎么了?;-)是的,我知道。有人犯了同样的错误。哎呀!他们把火扑灭了。。。♫ OP的代码有太多错误。OP的代码中有太多语法错误,这几乎不能涵盖它。另外,您在会话的超全局变量上犯了与OP相同的语法错误。复制并更正了该错误。您是对的。塔克斯。他希望他的问题得到解决,我做到了,我不会在这里浪费更多的时间。我还想知道他们是否也开始了会议。然而,我最近看到的这段代码在堆栈上循环了很多次。他们从堆栈中提取Q和A,并试图使其成为自己的。这肯定不是我想回答的问题。但是让我们看看OP要说什么,干杯谢谢你,丹尼尔。我将它从您的方式更改为我的书面方式,然后再次更改为您的方式,代码无论如何都无法工作。可能错误在代码的不同部分。