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要说什么,干杯谢谢你,丹尼尔。我将它从您的方式更改为我的书面方式,然后再次更改为您的方式,代码无论如何都无法工作。可能错误在代码的不同部分。