JQuery AJAX + PHP Login


JQuery AJAX + PHP Login

我使用PHP+jQueryAJAX将用户登录到我的网站。PHP连接到数据库,jquery连接到PHP文件,一切正常,直到真正登录。当我输入用户名和密码时,文件会返回一个错误。大约一周前,我就已经完成了这项工作,但我正在进行一些代码清理,我不小心删除了执行登录的脚本,现在我无法让它工作。这是我的PHP文件:

<?php 
include('.conf.php');
$user = $_POST['user'];
$pass = $_POST['pass'];
$result = mysql_query("SELECT * FROM accountController WHERE username = '$user'");while ($row = mysql_fetch_array($result)) {
if (sha1($user.$pass) == $row['pword']) {
    setcookie('temp', $row['username']);
    session_start();
    $_SESSION['login'] = 1;
    $_SESSION['uname'] = $row['username'];
    echo "success";
}
}
?>

我相信PHP文件是在回应正确的语句,是的,数据库中的密码是sha1加密的。这是jquery代码:

            $('.mainlogin').submit(function() {
        $.ajax({
            url: 'log.php',
            type: 'POST',
            data: {
              user: username,
              pass: password
            },
            success: function(response) {
                if(response == 'success') {
                    window.location.reload();
                } else {
                    $('.logerror').fadeIn(250);
                }
            }
        });
        return false;
    });

谢谢你的帮助!

编辑:我不确定现在出了什么问题,但无论我尝试什么,它都不会让我登录。我已经纠正了你们下面提出的所有建议,但都无济于事。我的PHP文件可能有什么问题吗?

试试这个:

  $('.mainlogin').submit(function() {
        $.ajax({
            url: 'log.php',
            type: 'POST',
            data: {
                  username: username,
                  password:password
            },
            success: function(response) {
                if(response == 'success') {
                    window.location.reload();
                } else {
                    $('.logerror').fadeIn(250);
                }
            }
        });
        return false;
    });

或通道数据参数

数据:'username='+username+'&password='+密码

并使用&!!!!

您有一个打字错误:

data: 'user='+username+'pass='+password,

应该是:

data: 'user='+username+'&pass='+password,

或者使用@Olaf的替代方案,确保你不会犯这样的错误。

其他人说了什么。"&"需要分离参数。

与此相关的是,您可能需要考虑对这些密码进行盐析。。。