在没有登录的情况下阻止直接链接访问后,JSON无法正常工作

时间:2017-11-06 09:23:03

标签: php json codeigniter

当我使用这段代码时,我的代码运行良好 -

public function __construct(){
    parent::__construct();
    if(!isset($_SESSION['login'])){

        redirect('welcome');
    }
}

然后在视野中 -

<?php
   $url = site_url('user/category/showCategoryJson'); // path to your JSON file
   $data = file_get_contents($url); // put the contents of the file into a variable
   $results = json_decode($data,true); // decode the JSON feed
   foreach ($results[0] as $key => $cat) { 
?>
  <tr class="odd gradeX">
   <td><?php echo $cat['categoryname']; ?></td>
   <td><?php echo $cat['username']; ?></td>   
   <td class="center"><a class="btn btn-success fa fa-edit editcat" id="<?php echo $cat['categoryid']; ?>" data-toggle="modal" data-target="#modal<?php echo $cat['categoryid']; ?>"></a> <a class="btn btn-danger fa fa-trash delete" id="<?php echo $cat['categoryid']; ?>"></a></td>
  </tr>
<?php } ?>

获取错误。但是,如果我只是忽略构造函数中的代码,那么所有事情都可以正常工作你能告诉我我该怎么做。

这是我正在调用的函数 -

public function showCategoryJson(){
    $this->load->model('user/category_model');
    $data[] = $this->category_model->displayCategory();
    echo json_encode($data);
}

构造函数和showCategoryJson()函数在同一个控制器中。

这是错误的图片 -

enter image description here

1 个答案:

答案 0 :(得分:0)

您正构建一个HTTP URL以从您自己的服务器获取JSON。

由于您必须先登录才能获取数据,并且您的PHP脚本(充当客户端)尚未登录到您的服务器:您无法以这种方式获取数据。

忘记JSON。只需直接从您的数据库访问数据。

$this->load->model('user/category_model');
$results[] = $this->category_model->displayCategory();
foreach ($results[0] as $key => $cat) {