jquery,php ajax后500内部服务器错误返回

问题描述:

我有一些问题,jQuery的ajax & PHP。我不擅长于PHP,但我必须使用php创建一个登录页面。jquery,php ajax后500内部服务器错误返回

问题是,当我试图从服务器获取一些信息时,我得到了服务器错误的值。

这里是我的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; 
} 

我试过了不同的服务器上,但什么都没有改变。我只会得到错误。

+0

它可以在服务器的PHP脚本 – Victor 2013-04-10 14:15:18

你犯了一个错字:

$['true'] = 'true'; 

或许应该

$a['true'] = true; 

(注意$ 一个

另外请注意,无论您的登录会成功与否,将始终填充该'真实值'true。看着你的Javascript,这不是你想要的。考虑在你的else语句中将其设置为false。这样

+0

喔错误,是的。我粗心。错误没有出现。你不知道为什么我可以在这个回应中找回语法错误吗? {“true”:false} – 2013-04-10 14:23:32

学习基本php:$['true'] = 'true';是一个扁平的语法错误。这是您的服务器500错误最可能的原因。

添加字符串看到你的PHP脚本错误:

error_reporting(E_ALL); 
ini_set('error_log', 'path_to_log_file'); 
ini_set('log_errors_max_len', 0); 
ini_set('log_errors', true);