1

jquery ajaxとphpに問題があります。phpが苦手なのですが、phpでログインページを作成しなければなりません。

問題は、サーバーから情報を取得しようとすると、サーバーエラーが発生することです。

これが私のphpコードです(誰かがサーバー側でログインを作成するためのより良い方法を知っている場合は、私を修正してください):

<?php
//$link = mysql_connect('localhost', 'root', '') or die('A kapcsolódás nem sikerült: '+mysql_error());
$link = mysql_connect("127.0.0.1", "qm", "soR624gA") or die("Nem sikerült kapcsolódni az adatbázishoz!"+mysql_error()); 
mysql_query("SET NAMES UTF8");
mysql_select_db("qm", $link);
$uname = mysql_real_escape_string($_POST['name']);
$pass = mysql_real_escape_string($_POST['pass']);
$fetch = mysql_query("SELECT * FROM felhasznalok WHERE nev ='{$uname}' AND jelszo = Sha1('{$pass}')") or die(mysql_error());
if (mysql_num_rows($fetch) == 1) {
    $a = array();
    $['true'] = 'true';
    echo json_encode($a);
}else{
    $a = array();
    $['true'] = 'true';
    echo json_encode($a);
}
?>

クライアント側でのログインのコードは次のとおりです。

function handleLogin(){
var _url = preUrl + "login.php";
var name = $("#loginForm #name").val();
var pass = $("#loginForm #pass").val();

$.ajax({
    type: 'POST',
    url: _url,
    data: {name: name, pass: pass},
    dataType: 'jsonp',
    beforeSend: function(){
        if((!name) || (!pass)){
            notify('error','Kérlek tölts ki minden adatot!');
            return false;
        }else{
            $("#loginForm #loginBtn").prop("disabled", true);  
        }
    },
    success: function(data){
    if(data[0].true == 'true'){
            window.localStorage["username"] = name;
            window.localStorage["password"] = pass;  
            $.mobile.changePage("#wall",{transition:"slide", reverse:false});
        }else{
            $('#loginForm #name').val("");
            $('#loginForm #pass').val("");
            notify('error','Hibás adatok!');
        }
    },
    error: function(err){
    //átírni ha a cordovajs be lesz szúrva!!!
    alert('Hiba: '+err.message);
}
});

$("#loginForm #loginBtn").prop("disabled", false);
return false;
}

別のサーバーで試してみましたが、何も変わりませんでした。エラーしか出ません。

4

3 に答える 3

2

あなたはタイプミスをしました:

$['true'] = 'true';

おそらくあるはずです

$a['true'] = true;

( $ a に注意してください)

また、ログインが成功するかどうかにかかわらず、常にその「真の値」にtrueが入力されることに注意してください。あなたのJavascriptを見ると、それはあなたが望むものではありません. else ステートメントでfalseに設定することを検討してください。

于 2013-04-10T14:16:23.883 に答える
2

Learn basic php:$['true'] = 'true';は完全な構文エラーです。これがサーバー 500 エラーの最も可能性の高い原因です。

于 2013-04-10T14:15:23.473 に答える