我无法指出Ajax Jquery上的错误,数据似乎无法通过login.php中的$_REQUEST获取


I cannot point out the error on Ajax Jquery, data doesnt seem to get by $_REQUEST in login.php

我很难找出代码中的错误,顺便说一下,浏览器中没有错误。问题是,当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(函数)内部,因此一旦单击按钮,它们就会有值。我真傻。很抱歉浪费你的时间。希望你将来能帮助我,谢谢。