php - 在我的 json 响应中获取空值。

标签 php mysql

我有以下注册 php 脚本。我想返回 json 响应 {“结果”:“成功”,“消息”:“123”}

其中 123 是注册用户的 ID。我想要这个 id,以便稍后用户可以将数据发布到其他表。

但是我明白了。

{"result":"fail","message":null}

这是我的脚本。

<?php
  session_start();
  require "init.php";
  header('Content-type: application/json');
  $id = $_POST['id'];
  $email = $_POST['email'];
  $user_name = $_POST['user_name'];

  $user_pass = $_POST['user_pass'];
  $passwordEncrypted = sha1($user_pass);  

  $confirmPass = $_POST['confirm_pass'];
  $confPasswordEncrypted = sha1($confirmPass);  

  $msg = "Congratulations. You are now registered to the most amazing app   
  ever!";            

        if(!filter_var($email, FILTER_VALIDATE_EMAIL)){

            $don = array('result' =>"fail","message"=>"Please enter a valid email");

        }    

if($email && $user_name && $user_pass && $confirmPass && filter_var($email, FILTER_VALIDATE_EMAIL)){


    $sql_query = "select * from user_info WHERE email  ='".mysqli_real_escape_string($con, $email)."' or user_name 
    ='".mysqli_real_escape_string($con, $user_name)."'";

    $result = mysqli_query($con, $sql_query);   

    $results = mysqli_num_rows($result);

    if ($results){
        $don = array('result' =>"fail","message"=>"Email or username exists.");

    }else{
        //This is where I am trying to get the id
        while($row = mysqli_fetch_array($result)) {             
            $posts['id'] = $row['id'];


        }   

        $sql_query = "insert into user_info values('$id','$email','$user_name','$passwordEncrypted','$confPasswordEncrypted');";

        if(mysqli_query($con,$sql_query)){
            $_SESSION['id'] = mysqli_insert_id($con);
            //And this is the json response I was talking about
            $don = array('result' =>"success","message"=>$posts['id']);
            mail($email,"Well done. You are registered to my sample app!",$msg);

        }
    }
}else if(!$email){


        $don = array('result' =>"fail","message"=>"Please enter a valid email");               


    }else if(!$user_name){

        $don = array('result' =>"fail","message"=>"Please enter your username");

    }else if(!$user_pass){

        $don = array('result' =>"fail","message"=>"Please enter a password");

    }else if(!confirmPass){

        $don = array('result' =>"fail","message"=>"Please confirm your    
        password");

    }     

  echo json_encode($don);

 ?>

最佳答案

改变

$don = array('result' =>"success","message"=>$posts['id']);

$don = array('result' =>"success","message"=>$_SESSION['id']); 

$posts['id'] 始终为 null,因为该行未插入到数据库中。删除该代码。

关于php - 在我的 json 响应中获取空值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38391772/

相关文章:

MySQL:使用自动增量的整数作为主键 - 我应该将其声明为无符号吗?

mysql - 将 varchar 值 '19500.00' 转换为数据类型 int 时转换失败

javascript - WordPress 仅在帖子作者时才显示编辑和删除按钮

php - 如何在模板页脚中加载脚本 - CodeIgniter

php - 从表中删除包含主键的行

php - MySQL 文本搜索示例

php - 如何在数据库中存储许多图像

mysql - cron 作业 - 如何将数据表导出到 csv/xls 文件?

php - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法”

javascript - 通过ajax调用从php文件接收多个值