理解为什么在alamofire中使用respondJSON时无法从php脚本返回json

理解为什么在alamofire中使用respondJSON时无法从php脚本返回json,php,xcode,server,alamofire,swifty-json,Php,Xcode,Server,Alamofire,Swifty Json,为了在MySQL表中注册用户,我用PHP编写了以下脚本 <?php $host = "127.0.0.1"; $user = "root"; $password = ""; $database = "login_db"; $connessione = new mysqli($host,$user,$password,$database); if ($connessione === false) {

为了在MySQL表中注册用户,我用PHP编写了以下脚本

<?php

$host = "127.0.0.1";
$user = "root";
$password = "";
$database = "login_db";

$connessione = new mysqli($host,$user,$password,$database);

if ($connessione === false) {

    die("errore connessione db " .$connessione->connection_error);

}
    @$staff = $_POST['staff_ID'];
    @$password = $_POST['password'];
    @$email = $_POST['email'];
    @$cpt = $_POST['isCPT'];
    @$name = $_POST['Name'];


    echo $staff;

$sql = "INSERT INTO users(staff_ID, password , email, isCPT, Name) VALUES (?,?,?,?,?)";
if ($statment = $connessione->prepare($sql)){

    $statment -> bind_param("sssss",$staff,$password,$email,$cpt,$name); 
    $statment -> execute();
    $json_array = [
        "successSignUp"=>true
    ];
    header('Content-type:application/json;charset=utf-8');
    $json = json_encode($json_array);

     if ($json === false) {
        $json = json_encode(["jsonError" => json_last_error_msg()]);
        if ($json === false) {
            // This should not happen, but we go all the way now:
            $json = '{"jsonError":"unknown"}';
        }
        http_response_code(500);
     } else {
        echo $json;
     }
} else {
    echo "errore connessione";
}
$statment -> close();
$connessione -> close();

?>


删除变量赋值前面的所有
@
,改为添加正确的验证。这些会抑制错误,使调试问题变得更加困难,比如您正在询问的问题。特别是因为您完全忽略了这个问题,并以任何方式继续您的脚本,只需假设所有值都存在且有效。顺便说一句,您不应该以纯文本形式存储密码。始终使用创建密码的安全散列,并仅保存该散列。然后,在对用户进行身份验证时,您使用将密码与哈希值进行比较。您的输出也不一致。有时输出json,有时直接输出文本。你总是
echo$staff,这将始终导致任何json输出无效。你需要检查你的逻辑。这里有很多问题。
 
let parm : [String: Any] = ["staff_ID": staffID,"password":password, "email":email, "isCPT":isCpt, "Name": nameUser]
AF.request(self.linkServerDB, method: .post, parameters: parm).validate()
.responseJSON{ response in
 print(response)
 let json = JSON(response.result)
 print(json)
 }
 .responseData { dt in
    do {
   let json = try JSON(data: dt.data!)
   print(json)
   }catch {
   print("error")
  }
 }