简体   繁体   English

jQuery,PHP Ajax发布500 Internal Server Error返回

[英]Jquery, php ajax post 500 Internal Server Error returns

I have some problem with jquery ajax & php. 我对jquery ajax和php有问题。 I'm not good in php, but I have to create a login page with php. 我的php不好,但是我必须用php创建一个登录页面。

The promblem is, when I try to get some information from the server I get server error insted of the value. 问题是,当我尝试从服务器获取一些信息时,服务器错误提示该值。

Here is my php code (if someone know better method to create login on server side, please correct me): 这是我的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);
}
?>

And here is the code of the login on the client side: 这是客户端上的登录代码:

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;
}

I tried it out on different servers but nothing changed. 我在其他服务器上进行了尝试,但没有任何变化。 I only get the error. 我只得到错误。

learn basic php: $['true'] = 'true'; 学习基本的php: $['true'] = 'true'; is a flat-out syntax error. 是完全语法错误。 this is the most likely cause of your server 500 error. 这是服务器500错误的最可能原因。

You made a typo: 您输入错误:

$['true'] = 'true';

Should probably be 应该是

$a['true'] = true;

(note the $ a ) (注意$ a

Also note that whether your login would succeed or not, it will always fill that 'true value' with true . 还要注意,无论您的登录成功与否,都将始终用true填充该“ true值”。 Looking at your Javascript, that's not what you want. 查看您的Javascript,这不是您想要的。 Consider setting it on false in your else statement. 考虑在您的else语句中将其设置为false

Add string like that to see errors in your php script: 像这样添加字符串以查看您的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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM