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

$_REQUEST の代わりに $_GET を使用してチェックする

于 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 に答える