【发布时间】:2016-05-13 12:05:26
【问题描述】:
问题是..我尝试从 php 解析 json..这里是 jquery 代码:
$.post( "confirmsignup.php", $("#signupform").serialize()).always(function( data ) {
alert(data.msg);
}, "json");
PHP 代码:
if (isset($_POST['gender'])&&isset($_POST['fname'])&&isset($_POST['sname'])&&isset($_POST['username'])&&isset($_POST['dob'])) {
$gender=secureing($_POST['gender']);
$fname=secureing($_POST['fname']);
$sname=secureing($_POST['sname']);
$username=secureing($_POST['username']);
$email=secureing($_POST['email']);
$dob=secureing($_POST['dob']);
if (isset($_POST['agree'])&&isset($_POST['pass'])&&isset($_POST['repass'])) {
$pass=secureing($_POST['pass']);
if ($_POST['pass']==secureing($_POST['repass'])) {
$query = "INSERT INTO users VALUES('$username', '$gender', '$fname', '$sname', '$email', '".md5($pass)."', '$dob')";
if(!($query_run = mysql_query($query))){
$msg = "error";
}else{
$msg = "complete";
}
}
}
}
header('Content-Type: application/json');
?>
{
"msg": "<?php echo $msg ." - ". $query; ?>"
}
secureing() 用于在 escape_string 之后返回字符串..
$msg 假设返回字符串“完成”......但它返回“错误”......
但是在phpmyadmin中,查询成功执行..
我认为没有错误..我的错误是什么?请帮助..
【问题讨论】:
-
你为什么不检查真正的错误?
-
你没有从你的 php 脚本返回或回显任何东西来传递到你的 js 文件中!!
-
1.不要手动构建 json,使用
json_encode(),2. 不要使用已弃用的mysql_*函数,3. 永远不要使用md5()来散列密码。 -
我在最后一行回显了 $msg 并返回到 jquery.post().done() 回调的警报消息...我尝试回显 mysql_error 但它什么也没返回...
-
@jeroen 感谢您的建议...但是为什么我不能使用 md5 来散列密码?
标签: php jquery mysql json ajax