2015-09-11 78 views
1

我有以下注册脚本,其中我的名字,电子邮件等通过简单的html表单插入到数据库中。从PHP获取JSON

<?php 

include("connect.php"); 

$error = ""; 

$response[]=array(); 

if(isset($_POST['submit'])){ 

    $firstName = $_POST['fname']; 
    $lastName = $_POST['lname']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 
    $passwordConfirm = $_POST['passwordConfirm']; 
    $image = $_FILES['image']['name']; 
    $temp_image = $_FILES['image']['tmp_name']; 
    $imageSize = $_FILES['image']['size']; 

    //echo $firstName."<br/>".$lastName."<br/>".$email."<br/>".$password."<br/>".$passwordConfirm."<br/>".$image."<br/>".$imageSize."<br/>"; 

    if(strlen($firstName)<3){ 

     $error = "First name is too short"; 

    }else if(strlen($lastName)<3){ 

     $error = "Last name is too short"; 

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

     $error = "Please enter valid email address"; 

    }else if(strlen($password)<8){ 

     $error = "Password must be greater than 8 characters"; 

    }else if($password !== $passwordConfirm){ 

     $error = "Password does not match"; 

    }else if($image == ""){ 

     $error = "Please upload your image"; 

    }else{ 

     $insertQuery = "INSERT INTO users(firstName,lastName,email,password,image) VALUES('$firstName','$lastName','$email','$password','$image')"; 
     $result = mysqli_query($con,$insertQuery); 
     if($result){ 
      //upload image in images forlder 
      $sql = "SELECT * FROM users"; 
      $selectQuery = mysqli_query($con,$sql); 
      if($selectQuery){ 
       while($row = mysqli_fetch_assoc($selectQuery)){ 
        $response[] = $row; 




       } 
     } 


      if(move_uploaded_file($temp_image,"images/$image")){ 
       $error = "You are successfully regirestered"; 

      }else{ 
       $error = "Image is not uploaded"; 
      } 
     } 
    } 

} 

?> 

<?php 
echo $error."<br/>"; 
echo json_encode($response); 
?> 

我所做的只是验证表单,插入数据并最终从数据库中选择所有数据,以便它们可以表示为JSON格式。

我得到的JSON是这个。

[[],{"id":"37","firstName":"Theo","lastName":"Tziomakas","email":"[email protected]","password":"testingpass","image":"56a5e6dc-d102-4f9a-bd5b-e6a217e5ad97.png"}] 

如何可以采取空数组

[] 

出JSON响应即。

[{"id":"37","firstName":"Theo","lastName":"Tziomakas","email":"[email protected]","password":"testingpass","image":"56a5e6dc-d102-4f9a-bd5b-e6a217e5ad97.png"}] 

另外我该如何生成这样的JSON?

{"status":"success","message":"Successfully registered"} 

回答

2

要在JSON结构的开头删除错误[]改变这一行

$response[]=array(); 

$response = array(); 

要生成JSON结构这样

{"status":"success","message":"Successfully registered"} 

我会这样做

$j = new stdClass(); 
$j->status = 'success'; 
$j->message = 'Successfully registered'; 

$string = json_encode($j); 
+0

谢谢你这位先生。 – Theo

+0

又如何{“状态”:“成功”,“消息”:“成功注册”} JSON响应? – Theo

+0

对不起错过了第二个问题。我在我的回答中添加了一条建议。 – RiggsFolly