我正在尝试通过ajax在json中发送身份验证响应。 在chrome devtools中,我得到文件 register.ajax.php 的响应 在“网络”上但从未在javascript文件中接受过。
在user.class.php中,我检查用户ID /用户名或电子邮件是否已经存在,如果有,则会将状态发送为“错误”或“成功”;
user.class.php
<%- comment.author.name %>
通过ajax文件,我只需在设置动作'register_client'时激活register_client公共函数(似乎也很好);
register.ajax.php
public function register_client($uid, $email, $pwd)
{
$this->db = DB::getInstance();
$stmt = $this->db->prepare("SELECT * FROM user_accounts WHERE uid = :uid OR email = :email");
$stmt->bindParam(":uid", $uid);
$stmt->bindParam(":email", $email);
$stmt->execute();
$query = $stmt->fetch(PDO::FETCH_ASSOC);
$resultado_uid = $query['uid'];
$resultado_email = $query['email'];
if ($resultado_uid || $resultado_email)
{
$response_array['status'] = 'error';
echo json_encode($response_array);
}
else
{
$response_array['status'] = 'success';
echo json_encode($response_array);
$basic_password = $pwd;
$hashed_password = password_hash($basic_password, PASSWORD_BCRYPT);
$stmt = $this->db->prepare("INSERT INTO user_accounts(uid, email, pwd) VALUES (:uid, :email, :pwd)");
$stmt->bindParam(":uid", $uid);
$stmt->bindParam(":email", $email);
$stmt->bindParam(":pwd", $hashed_password);
$stmt->execute();
}
}
注册表格应该没问题(这只是一个简单的形式,动作也匹配)
register.php
<?php
require_once "../header.php";
if(isset($_POST['action'])) $action = $_POST['action'];
if($action == 'register_client'){
$cliente->register_client($_POST['uid'], $_POST['email'], $_POST['pwd']);
}
这里似乎是问题所在,成功函数不会检索任何数据。试图在其中执行console.log(数据)以查看它给了我什么,到目前为止没有。
<?php
require_once "header.php";
require_once "nav.php"
?>
<form action="" method="POST">
<input type="text" name="uid" id="uid" placeholder="username"><br>
<input type="email" name ="email" id="email" placeholder="email"><br>
<input type="password" name="pwd" id="pwd" placeholder="password"><br>
<button name="register_client" id="register_client" type="submit">Register</button>
</form>
<?php
include "footer.php";
?>
答案 0 :(得分:0)
在register.ajax.php
你没有回应任何事情。如果您想获得输出,则必须在json
string
或register.ajax.php
在register.ajax.php
中,如果您添加echo "success";
,那么您将获得成功的控制台日志。
如果您想返回array
,则可以使用echo json_encode($yourArrayData);