我尝试做的是在尝试注册时存在用户名或电子邮件时显示验证消息。我使用了json_encode,它有一个消息和状态。发生的事情是,当我输入一个存在的用户名和电子邮件时,它不会做任何事情,也不会显示消息或注册。
if($_SERVER["REQUEST_METHOD"] == "POST")
{
if($_POST["password"] !== $_POST["confirmation"])
{
echo json_encode(array('msg'=>"password and confirmation aren't equal.", 'url'=>"", 'status'=>false));
}
else if(($data['username']=== $_POST['username'] )|| ($data['email'] === $_POST['email'] ))
{
echo json_encode(array('msg'=>"Username or email exists.", 'url'=>"", 'status'=>false));
}
else
{
$result = query("INSERT INTO users (username, hash, email) VALUES (?,?,?)", $_POST["username"], crypt($_POST["password"]), $_POST["email"]);
$rows = query("SELECT LAST_INSERT_ID() AS id");
$id = $rows[0]["id"];
$_SESSION["id"] = $id;
echo json_encode(array('msg'=>"Success.", 'url'=>"/kinema/html/index.php", 'status'=>true));
}
}
scripts.js中
$('#register_form').on('submit', function(e) {
e.preventDefault();
var name = $('#register_form input[name=username]').val();
var email = $('#register_form input[name=email]').val();
$.ajax({
url: "register.php",
type: "POST",
data: {
username: name,
email: email
},
dataType: 'json',
success: function(response) {
if(response.status){
console.log(response);
window.location = response.url;
}
else
{
$('#invalid_register').html(response.msg);
}
}
});
});
答案 0 :(得分:0)
您没有发布密码或确认值,这将导致未定义的索引错误。
我可以告诉$ data数组不存在或者你发布的代码不完整。