这是我的JS代码:
$.ajax({
url: 'login.php',
type: 'POST',
data: {
loginName: $("#loginName").val(),
loginPass: $("#loginPass").val()
},
dataType: 'json',
success: function(data){
if(data.success){
$("#Message").fadeIn(function(){
$(this).html(data.message);
});
}
else
{
$("#Message").fadeIn(function(){
$(this).html(data.message);
});
}
}
});
这是PHP:
<?php
$data = array();
$data['success'] = true;
$data['message'] = "Here is the message";
echo json_encode($data);
?>
如果我有这个可以,但如果我编辑php文件:
<?
include "db.php";
$data = array();
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if($_POST['loginName'] == "" && $_POST['loginPass'] == "")
{
@$v = mysql_query("SELECT * FROM users WHERE name LIKE '$registerName'");
@$p = mysql_num_rows($v);
if ($p == 0){
@$v = mysql_query("INSERT INTO users VALUES('','$registerName','$registerPass')");
$data['message'] = "Byly jste úspěšně zaregistrováni.";
$data['success'] = true;
}
else
{
$data['message'] = "Tento uživatel je tu již zaregistrován.";
$data['success'] = false;
}
echo json_encode($data);
}
?>
ajax什么都不做......它只是发送数据但没有任何警报...... :( 我控制这个mysql事件及其作品,如果我只使用PHP ...
答案 0 :(得分:1)
你为什么要犯错误?它甚至没有正确完成:
@$v = mysql_query("SELECT * FROM users WHERE name LIKE '$registerName'");
首先,在任务中压制错误毫无意义 - 任务总是会成功。将@
放在另一边也是没用的。如果查询爆炸了你,你绝对没有任何迹象。你根本不检查它是否失败了。代码应该是:
$result = mysql_query(...);
if ($result === FALSE) {
die(mysql_error());
}
您是否检查过您的POST数据是否正常通过?现在看来,如果这两个POST字段都没有设置,那么你的ajax响应块就会被完全绕过,脚本就不会输出任何内容。
答案 1 :(得分:1)
首先,我想欢迎回到Bobby Tables
现在开始营业,仔细查看以下代码行:
if($_POST['loginName'] == "" && $_POST['loginPass'] == "")
在议程上接下来,您的错误抑制不正确,您应该使用配置文件中的error_reporting
来控制错误,并使用error_handler记录应用程序的错误。
您还应该注意,如果满足某些条件,您只会回复结果,我会建议您回答,无论使用什么数据或发布方法,都会为每种可能性提供错误消息,因为在开发阶段这会产生一些问题更容易。
这就是我编写代码的方式:
include "db.php"; //error_reporting(0);
$data = array();
$user_info = array_map("mysql_real_escape_string",$_POST);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!empty($user_info['loginName']) && !empty($user_info['loginPass']))
{
$v = mysql_query(sprintf("SELECT * FROM users WHERE name LIKE '%s'",$user_info['loginName']));
if(mysql_num_rows($v) > 0)
{
//Update Here
//Output Success here/ json_encode
exit;
}
}
}
//Output Error here/ json_encode