【问题标题】:Json_encode showing empty result in phpJson_encode 在 php 中显示空结果
【发布时间】:2017-10-15 01:32:00
【问题描述】:

我正在使用最新版本的 php 7.1。在这个 PHP 脚本中,结果为空,响应成功。但是如果我们使用 print_r 它会在输出中显示数组值。

   <?php
    include 'dbconn.php'; 
    if ($_SERVER["REQUEST_METHOD"] == "POST") {

            $inputJSON = file_get_contents('php://input');
            $data=json_decode($inputJSON, true);
            $email=$data['providerEmail'];
            $password=$data['providerPassword'];

            if($data){

                $sql="select * from en_providers where providerEmailAddress='".$email."' and providerPW='".$password."'";
                $result = mysqli_query($con,$sql) or die("Error in Selecting " . mysqli_error($connection));
                $row =mysqli_fetch_assoc($result);
                $providerID=$row['providerID'];

                    $sql1="select * from en_venues where providerID='".$providerID."'";
                    $result1 = mysqli_query($con,$sql1) or die("Error in Selecting " . mysqli_error($connection));
                        while($row1['Doctorid'][] =mysqli_fetch_assoc($result1)){
                            $merge=array_merge($row,$row1);
                        }
            if($row){  
                header('WWW-Authenticate: Digest',true,200);   
                $list=$merge;
                echo json_encode($list);
            }
            else
            {
                header('WWW-Authenticate: Digest');
                header('HTTP/1.1 401 Unautherised', true, 401);
                $er='Invalid Username/Password';
                $return['error']=$er;
                echo json_encode($return);   
            } 
        }
        else
        {
            header('WWW-Authenticate: Digest');
            header('HTTP/1.1 401 Unautherised', true, 401);
            $er='Invalid Username/Password';
            $return['error']=$er;
            echo json_encode($return);
        }

    }
    ?>

如何在 json 响应中打印数组值。

请帮我解决这个问题。谢谢

【问题讨论】:

  • 显示你的输出 ?
  • 您的代码容易受到 SQL 注入的影响,您需要修复此问题。 stackoverflow.com/questions/60174/… 您似乎还以明文形式存储密码,这是一个主要的安全风险。它们需要被安全地散列。
  • 输出显示为空@ZaidBinKhalid
  • $yourvariable->providerEmail 尝试这样获取响应值。
  • 好的,但是如果它的数据量很大,很难得到每个列的响应

标签: php mysql json mysqli


【解决方案1】:

请用json_last_error_msg方法检查你的错误

$inputJSON = file_get_contents('php://input');
$data=json_decode($inputJSON, true);
if (!is_array($data) || empty($data)) {
    throw new Exception(json_last_error_msg());
}

这应该解决问题,什么是错误的。如果仍然不知道,那么用输出更新您的帖子。

【讨论】:

  • 我在我的代码中添加了这段代码,但它仍然是空的@timiTao
  • 我在 web 服务器中使用 php 7.1.3 最新版本有什么问题吗?
  • 请提供您的测试输入。你发送什么json到服务器?您可以在 chrome Copy as Curl 中使用 - 然后更新帖子。
猜你喜欢
  • 1970-01-01
  • 2011-04-03
  • 2022-06-19
  • 1970-01-01
  • 2022-12-06
  • 2016-02-24
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多