Php 登录脚本不工作,无法匹配用户名和密码

Php 登录脚本不工作,无法匹配用户名和密码,php,Php,我编写了一个简单的登录脚本,但它不会将从表单中检索到的用户名和密码和数据库输入相匹配 代码如下: <?php // Include database connection settings include $_SERVER["DOCUMENT_ROOT"] . 'system/db/DbConnection.php'; // Inialize session session_start(); // Retrieve POST variables from login form $us

我编写了一个简单的登录脚本,但它不会将从表单中检索到的用户名和密码和数据库输入相匹配

代码如下:

<?php

// Include database connection settings
include $_SERVER["DOCUMENT_ROOT"] . 'system/db/DbConnection.php';

// Inialize session
session_start();

// Retrieve POST variables from login form
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

// Retrieve username and password from database according to user's input
$qLogin = mysql_query("SELECT * FROM users WHERE username = '{$username}'") or die("MySQL ERROR: ".mysql_error());
$rLogin = mysql_fetch_array($qLogin);
echo '1<BR />';

echo $password . '<BR />';
echo $rLogin['password'] . '<BR />';
echo '2<BR />';

echo $username . '<BR />';
echo $rLogin['username'] .'<BR />';
echo '3<BR />';

// Check username and password match
if ($username == $rLogin['username'] && $password == $rLogin['password']) {
    echo '4<BR />';
    // If last_login and login_ip == "", its the users first time loging in
    if($rLogin['last_login'] == "" && $rLogin['login_ip'] == ""){
    echo '5<BR />';
    // The date right now
    $date = date("d/m/y H:i:s");
    // Get user IP
    $ip = $_SERVER['REMOTE_ADDR'];
    // Update last_login and login_ip
    echo '6<BR />';
    mysql_query("UPDATE users SET last_login = '{$date}', login_ip = '{$ip}' WHERE username = '{$username}'") or die("MySQL ERROR: ".mysql_error());
    }

    // Set session variables
    $_SESSION['username'] = $username;
    $_SESSION['auth'] = $rLogin['auth'];

    //header("Location: ../success/");
    //exit();
    echo '7<BR />';
} else {
    // Jump to login page
    //header("Location: ../");
    //exit();
    echo '8<BR />';
}
?>
我得到以下回应:1、2、3和8。我还得到了用户名和密码,其中包括一个回音,它们都匹配


PS:无需对不安全的密码发表评论,密码经过了严格加密,当我回显密码时,密码是相等的,因此这也不是问题。

您的密码是如何存储在数据库中的?md5还是别的什么?你的问题太本地化了:为你调试脚本对未来的任何用户都没有好处,所以我的脚本不起作用不是一个可以给出权威答案的问题。我使用crypt函数,所以它不是md5,但它们匹配得很好。我真的看不出匹配有什么问题,这就是为什么我这么问,因为我可能错过了一些非常基本的东西-Crypt不是正确的密码存储。您必须对它们进行哈希和加盐,而不是使用可逆加密来存储它们。您是否尝试使用crypt$password来比较密码?…或者从数据库中获取密码并将其与未修改的POST变量进行比较,并小心addslashes
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

// Retrieve username and password from database according to user's input
$qLogin = mysql_query("SELECT * FROM users WHERE username = '$username' ANd password='$password'") or die("could not fetch");
if (mysql_num_rows($qLogin) > 0) {
    $rLogin = mysql_fetch_assoc($qLogin);
    echo '1<BR />';

    // put your all success page link
} else {
    //put login page.
}