【问题标题】:CodeIgniter flashdata not working after redirect重定向后 CodeIgniter flashdata 不起作用
【发布时间】:2015-09-15 22:12:46
【问题描述】:

我已经这样设置了flash数据

$this->session->set_flashdata('dispMessage','my message is here'));

我在会话库中找到了该消息,但未显示在重定向页面中。 我使用的是codeigniter 2.2.0版。

谁能帮忙...?

【问题讨论】:

  • echo $this->session->flashdata('dispMessage') 得到什么?
  • 你能在你的重定向页面中提供 HTML/PHP 吗?您也可以提供您的控制器代码吗?..您也收到任何错误吗?
  • 添加flashdata: $this->session->set_flashdata('item', 'value');您还可以将数组传递给 set_flashdata(),方式与 set_userdata() 相同。读取 flashdata 变量: $this->session->flashdata('item');
  • 确保您的会话处于活动状态。只有将 flashdata 添加到活动的会话中时,falshdata 才应该起作用。检查您是否在设置 flashdata 之前添加了 sess_destroy() 函数

标签: php jquery codeigniter


【解决方案1】:

根据session class page of the manual

CodeIgniter 支持“flashdata”或会话数据 可用于下一个服务器请求,然后自动 清除。这些可能非常有用,通常用于 信息或状态消息(例如:“记录 2 已删除”)。

尝试在重定向之前立即在脚本中保留 flashdata,如下所示:

$this->session->keep_flashdata('dispMessage');

【讨论】:

    【解决方案2】:
    // Set flash data 
    $this->session->set_flashdata('dispMessage', 'This is my message');
    // After that you need to used redirect function instead of load view such as 
    redirect("yourcontroller/controllermethod");
    
    // Get Flash data on view 
    $this->session->flashdata('dispMessage');
    

    【讨论】:

    • 我已经写了和你上面提到的一样的代码,但是没有用。
    • 如何在不加载页面的情况下显示错误?对于没有负载的情况,您应该使用 JS。哈哈
    【解决方案3】:

    对我而言,flashdata 无法正常工作,因为在我调用 flashdata 时会话未激活或未设置。 我的场景是,一旦用户登录,用户就会被重定向到特定页面,在该页面中写入的条件很少,以检查用户是否具有查看它所需的权限。如果用户没有权限,页面将被重定向到登录页面,并在警报中显示错误消息。此错误消息是通过 flashdata 设置的。当在控制器中设置 flashdata 时,用户会话还没有激活。因此没有设置 flashdata 并且没有显示错误消息。 我希望这可以解决像我这样有类似情况的人的问题。

    要检查会话是否处于活动状态,请在设置 flashdata 之前使用以下 sn-p:

     if ($this->session->has_userdata('username')) {
           echo json_encode(TRUE);
     } else {
           echo json_encode(FALSE);
     }
     exit;
    

    如果它是假的,那么你的会话还没有激活。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-13
      • 2022-01-24
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      相关资源
      最近更新 更多