Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP更新查询不会更新_Php_Login_Mysqli - Fatal编程技术网

PHP更新查询不会更新

PHP更新查询不会更新,php,login,mysqli,Php,Login,Mysqli,我正在尝试在我的登录脚本上创建暴力保护。虽然应该更新数据库的查询无法运行,但帐户已锁定。我开始感到沮丧,因为我在过去半个小时里一直在看这段代码 无论如何,代码如下: if(isset($_POST['submit'])) { $mysqli = getConnected('*','*','*','*'); $username = $mysqli->escape_string($_POST['username']); $password = $mysqli->escape_string

我正在尝试在我的登录脚本上创建暴力保护。虽然应该更新数据库的查询无法运行,但帐户已锁定。我开始感到沮丧,因为我在过去半个小时里一直在看这段代码

无论如何,代码如下:

if(isset($_POST['submit'])) {
$mysqli = getConnected('*','*','*','*');
$username = $mysqli->escape_string($_POST['username']);
$password = $mysqli->escape_string($_POST['password']);
$hash = sha1($password);
$query = "SELECT * FROM users WHERE username='$username'";
$result = $mysqli->query($query);
$data = $result->fetch_assoc();

    if($data['lock'] == 0) {
        if($hash == $data['password']) {
        $_SESSION['loggedin'] = true;
        $_SESSION['username'] = $username;
        $result->free();
        $mysqli->close();
        header("Location: index.php?p=start");
        } else {
            if($data['login_attempts'] != 0) {
                $attempts_left = $data['login_attempts'] - 1;
                $query2 = "UPDATE users SET login_attempts='$attempts_left' WHERE username='$username'";
                $mysqli->query($query2);
                echo "Inloggningen misslyckades, du har ". $attempts_left ." försök kvar.";
            } else {
                $query3 = "UPDATE users SET lock='1' WHERE username='$username'";
                $mysqli->query($query3);
                echo "Ditt konto har låsts.";
            }
        }
    } else {
        echo "Ditt konto är låst, kontakta webmaster för att återställa det.";
    }
}
问题是$query3在哪里执行,尽管它根据var_dump正确执行


我需要第二双眼睛来确保我不会发疯

问题在于
是一个安全的锁。您需要将查询更改为:

$query3 = "UPDATE users SET `lock`='1' WHERE username='$username'";
                            ^^^^^^ use back-ticks to escape reserved words in mysql

问题是,
是一个错误。您需要将查询更改为:

$query3 = "UPDATE users SET `lock`='1' WHERE username='$username'";
                            ^^^^^^ use back-ticks to escape reserved words in mysql

非常感谢。你帮我解决了这个乏味的问题!非常感谢。你帮我解决了这个乏味的问题!