为什么赢了';这是PHP&;SQL用户登录工作?

为什么赢了';这是PHP&;SQL用户登录工作?,php,sql,Php,Sql,我正在为我的课程建立一个网站,但我无法让用户登录工作。我已经设法让帐户创建工作,我已经检查了他们正在通过查询数据库,但登录仍然无法工作。我已经测试了所有的表单,它们工作正常。我正在为我的数据库使用sqlite3 特别是,当我登录(或至少尝试登录)时,所有值似乎都已正确存储。我被重定向到设置页面,这意味着密码彼此不匹配。所以一定是出了什么问题,因为它找到了正确的用户 帐户创建PHP: <?php require 'database.php'; $userna

我正在为我的课程建立一个网站,但我无法让用户登录工作。我已经设法让帐户创建工作,我已经检查了他们正在通过查询数据库,但登录仍然无法工作。我已经测试了所有的表单,它们工作正常。我正在为我的数据库使用sqlite3

特别是,当我登录(或至少尝试登录)时,所有值似乎都已正确存储。我被重定向到设置页面,这意味着密码彼此不匹配。所以一定是出了什么问题,因为它找到了正确的用户

帐户创建PHP:

<?php

        require 'database.php';
        $username = $_POST['user_username'];
        $password = $_POST['user_password'];
        $email = $_POST['user_email'];
        $salt = sha1(time());
        $password = sha1($password);
        $encrypted_password = ($salt."--".$password);


        $db = new Database();
        $db->exec("INSERT INTO users VALUES(NULL, '$username', '$encrypted_password', '$salt', '$email');");

        header("Refresh: 5;url=http://cs139.dcs.warwick.ac.uk/~u1418925/cs139/index.php");
        echo "<center><h1>You will be rediected in 5 seconds...</h1></center>"

?>

要比
更具体一些,它不起作用。
这个问题有点太宽泛了。你已经做了什么研究?什么不起作用?有什么错误吗?你做了什么来调试这个问题?就目前而言,你好像在说“这是我的家庭作业,帮我完成它”。提问要具体一点。您是否尝试删除
从您的查询结束???是的,很抱歉,我现在已经说得更具体了。我不希望你通过任何方式来完成它,我已经做了很多,而且还有很多事情要做,除此之外,我只是在这方面停留了一段时间,直到星期一我才能从研究生那里得到任何帮助。这段代码中有SQL注入漏洞-在修复之前不要上线。目前,您实现的任何安全性都可能是可以绕过的。如果您的数据库库提供参数绑定,请使用它-如果不提供,请切换到提供参数绑定的库。PDO提供了一个SQLite驱动程序。
<?php
        session_start();
        require 'database.php';
        $username = $_POST['user_name'];
        $password = $_POST['user_password'];

        $db = new Database();
        $row = $db->querySingle("SELECT * from users WHERE(username = '$username');");

        $password = sha1(password);
        if(($row['salt']."--".$password) == $row['password']) {
                $_SESSION['id'] = $row['id'];
                header('Location:index.php');
        } else {
                header('Location:settings.php');
        }
?>
<?php
class Database {

    private $database;

    function __construct() {
        $this->database = $this->getConnection();
    }

    function __destruct() {
        $this->database->close();
    }

    function exec($query) {
        $this->database->exec($query);
    }

    function query($query) {
        $result = $this->database->query($query);
        return $result;
    }

    function querySingle($query) {
        $result = $this->database->querySingle($query,true);
        return $result;
    }

    function prepare($query) {
        return $this->database->prepare($query);
    }

    function escapeString($string) {
        return $this->database->escapeString($string);
    }

    private function getConnection() {
        $conn = new SQLite3('todo.db');
        return $conn;
    }
}
?>