0

我无法找出我的代码中有什么问题,顺便说一下,浏览器中没有错误。问题是当 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";
}
?>

谁能给我一个关于如何解决这个问题的建议?当我试图提醒数据时,我得到的只是“失败”。警报(数据);

4

3 回答 3

1

尝试

if (mysql_num_rows($sql) == 1) {

前提是您的用户名是唯一的。但是,强烈建议不要继续使用mysql_函数。使用PHP.NET上推荐的 MySQLi 或 PDO_MySQL

于 2012-07-23T13:01:27.220 回答
0

使用 $_GET 而不是 $_REQUEST 并检查

于 2012-07-23T13:43:14.357 回答
0

好消息!

我终于解决了这个问题。问题出在 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(function) 内部,以便单击按钮后它们将具有值。我真傻。很抱歉浪费了您的时间,希望您以后能帮助我,谢谢。

于 2012-07-23T14:06:56.210 回答