0

今天我做了一个应该登录的代码,但遗憾的是它不会。

这是我尝试过的:

include('php/mysqlcon.php');
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = $_POST['username'];
    $password = sha1($_POST['password']);
    $query = mysql_query("SELECT * FROM user WHERE username=$username AND password=$password");
    $query_rows = mysql_num_rows($query);
    if($query_rows > 0) {
        session_start();
        $_SESSION['username'] = $username;
        header('Location: index.php');
    } else {
        echo('bad login');
    }
}

mysql 的详细信息在 mysqlcon.php 中,我确定它们是正确的

4

4 回答 4

7

您需要在查询中为您的用户名和密码加上引号。此外,请确保您过滤输入,因为您的代码容易受到 mysql 注入。

于 2012-10-20T22:45:23.983 回答
2

创建 mysql 查询时,您需要将$usernameand$password括在引号中,目前在大多数情况下,您最终会遇到错误的查询。

你也应该在谷歌上搜索“如何防止 sql-injection php”,目前你很容易受到这种类型的攻击(这可能会导致严重的麻烦)。

于 2012-10-20T22:45:22.257 回答
0

使用准备好的语句并将凭据放入 SQL 查询的参数中。

于 2012-10-20T22:46:46.907 回答
0

"SELECT * FROM user WHERE username='$username' AND password='$password'"

于 2012-10-20T22:47:08.290 回答