我很难找出代码中的错误,顺便说一下,浏览器中没有错误。问题是,当ajax将数据传递给login.php时,登录php无法识别数据(用户名和密码),或者ajax没有正确发送数据,$_Session['username']未定义;
这是我的代码,
$(function(){
var user = $('#username').val();
var pass = $('#password').val();
$('#login').click(function(){
$.ajax({
type: 'GET',
url: "../ajax/login.php",
data: 'username='+user+'&password='+pass
}).success(function(data){
if(data == "Success"){
$('#error').html("Hello!");
}else{
alert(data);
$('#error').html("Hello!");
}
}).error(function(){
alert("An error occured.");
});
});
});
login.php代码
<?php
include '../library/Session.php';
include '../library/connection/Connection.php';
include '../library/Data_Cleansing.php';
$session->LoginCheckSession();
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$username = $CleanData->stripAndSlash($username);
$password = $CleanData->stripAndSlash($password);
$sql = mysql_query("SELECT * FROM user WHERE username='$username' AND password='$password'") or die(mysql_error());
if ($sql && mysql_num_rows($sql) == 1) {
while ($row = mysql_fetch_array($sql)) {
if ($username == $row['username'] && $password == $row['password']) {
$_SESSION['username'] = $username;
echo "Success";
}
}
} else {
echo "Failed";
}
?>
有人能给我一个如何解决这个问题的建议吗?当我试图提醒数据时,我得到的只是"失败"警报(数据)
尝试
if (mysql_num_rows($sql) == 1) {
前提是您的用户名是唯一的。然而,强烈建议继续使用mysql_
函数。在PHP上建议使用MySQLi或PDO_MySQL。NET
使用$_GET而不是$_REQUEST并检查
好消息!
我终于解决了这个问题。问题出在login.js 中
$(function(){
var user = $('#username').val();
var pass = $('#password').val();
$('#login').click(function(){
$.ajax({
type: 'GET',
url: "../ajax/login.php",
data: 'username='+user+'&password='+pass
}).success(function(data){
if(data == "Success"){
$('#error').html("Hello!");
}else{
alert(data);
$('#error').html("Hello!");
}
}).error(function(){
alert("An error occured.");
});
});
});
参见var user = $('#username').val();
var pass = $('#password').val();
$('#login').click(function(){
var user = $('#username').val();
var pass = $('#password').val();
$.ajax({
type: 'GET',
它们被假设在click(函数)内部,因此一旦单击按钮,它们就会有值。我真傻。很抱歉浪费你的时间。希望你将来能帮助我,谢谢。