[英]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.