1

我有一个文件文本文件,我在其中通过 file_put_contents 保存用户 ID 我想在将其发送到查看功能之前显示该用户 ID 这是我的代码我尝试自己 bt 没有得到结果....

    $name   =   $this->session->userdata('name');
      $id   =   $this->session->userdata('id');

   file_put_contents($filename,json_encode(array('id'=>$id,'name'=>$name)));

   $response = array();
   $response = json_decode(file_get_contents($filename));
   if ($response->name==1){
      echo $this->session->userdata('name');
   }
   echo json_encode($response);

这不起作用,我想显示 bt 如果我删除这个 if 条件然后我在视图文件中得到我的结果

       if ($response->name==1){
         echo $this->session->userdata('name');
       }

谢谢....

4

2 回答 2

0

$response->name它将是一个字符串,而不是一个 int。

代替:

if ($response->name==1){
    echo $this->session->userdata('name');
}

和:

if ($response->name){
    echo $this->session->userdata('name');
}

更新:
您在评论中的某处声明要检查用户 ID,但在代码中检查用户名。同样在if条件内,您应该使用来自 $response 的数据,而不是来自会话的数据。那说:

if ($response->id == 1){
    echo $response->name;
}

作为旁注,您确定id并且name存在于会话中吗?

于 2013-03-03T15:44:53.767 回答
0

我不清楚你为什么有

if ($response->name==1){

但无论如何试试这个

如果你想保护 json 对象结构,你需要第二个参数为真

 json_decode(file_get_contents($filename) ,true);

并且您需要一些可以在底部找到的 json 标头

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
$name   =   $this->session->userdata('name');
$id   =   $this->session->userdata('id');
if(!empty($name)){

    if(!is_file($filename)){
        touch($filename);
        chmod($filename,0777);
    }

    file_put_contents($filename,json_encode(array('id'=>$id,'name'=>$name),true));

    $response = array();
    $response = json_decode(file_get_contents($filename) ,true);
    if (empty($response->name)){  
        echo json_encode(array('error'=>'empty response name'),true);
     die();

 }else{



    echo json_encode($response);
  }

      }else{
    json_encode(array('error'=>'no username'),true)
    }

我的管理员中有我的消息系统,它用于codeigniter

http://dl.dropbox.com/u/72626795/messaging.zip

于 2013-03-03T14:44:31.883 回答