我使用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的替代方案,确保你不会犯这样的错误。
其他人说了什么。"&"需要分离参数。
与此相关的是,您可能需要考虑对这些密码进行盐析。。。