【发布时间】:2014-08-23 16:33:04
【问题描述】:
我开始开发应用程序,但登录时遇到问题。
我有一个表单,其中包含对 PHP 服务的 Ajax 调用来验证用户,我将两个文件都上传到了我的服务器,它运行良好。我输入用户名和密码,进入 PHP 文件并验证用户,到目前为止一切顺利。
问题是这两个文件将位于不同的服务器中。现在我将 PHP 文件托管在我的服务器上,并且 form/ajax 调用 localhost 并且它不起作用。
代码如下:
PHP:
<?php
header('Content-type: application/json');
$server = "localhost";
$username = "****";
$password = "****";
$database = "*****";
$con = mysql_connect($server, $username, $password) or die ("Error: " . mysql_error());
mysql_select_db($database, $con);
$user = mysql_real_escape_string($_POST["user"]);
$pass = mysql_real_escape_string($_POST["pass"]);
$result = mysql_query("SELECT * FROM Usuarios WHERE IdUsuario = '" . $user . "' AND Clave = '" . $pass . "'");
$numResults = mysql_num_rows($result);
echo $numResults;
mysql_close($con);
?>
JS:
$( document ).ready(function() {
$('form').submit(function(event){
event.preventDefault();
var user = $(this).find("#user").val();
var pass = $(this).find("#pass").val();
$.ajax({
type: 'POST',
crossdomain: true,
data: 'user=' + user + '&pass=' + pass,
url: 'http://www.url.com/login.php',
success: function(data){
if(data == 1){
alert("YES!");
}else{
alert("NO");
}
},
error: function(){
alert('Error');
}
});
return false;
});
});
我也尝试过使用 dataType: "json" 和 "jsonp"
【问题讨论】:
-
您在 PHP 中使用过时的 MySQL 系列 - 请查看 PDO 或 MySQLi。此外,以纯文本形式存储密码也不是一个好主意。当您说“它不起作用”时,请提供更多详细信息 - 什么都没有回来?还是总是“不”回来?
-
请不要在数据库中以纯文本形式存储密码...顺便说一句,您的代码容易受到 sql 注入的影响...
-
感谢您的建议,我会这样做的。它总是涉及到 ERROR 回调