【问题标题】:error with destroying session in codeigniter在 codeigniter 中破坏会话时出错
【发布时间】:2013-11-19 22:06:43
【问题描述】:

我在使用代码点火器破坏 php 中的会话时遇到问题。我使用了给定的代码: 控制器:home.php

public function logout()
{
    $this->load->library('session');
    $this->session->sess_destroy();
    $this->session->set_flashdata('msg','Please login to continue');
    redirect(base_url().'home/index','refresh');
}

在视图中:profile.php

<a href="<?php  echo base_url();?>home/logout">Logout</a>

单击“注销”后,页面将重定向到“主页/索引”页面,如控制器 home.php 中的注销功能所述。但是当我在浏览器中单击后退按钮时,页面被定向到配置文件页面(用户登录时加载的页面。)请告诉我答案,如何销毁该会话以及为什么我的 flashdata 也不起作用。

【问题讨论】:

  • 我认为你需要一个前导斜杠,因为 base_url 不包含斜杠 - &lt;a href="&lt;?php echo base_url();?&gt;/home/logout"&gt;Logout&lt;/a&gt;
  • 斜杠不是问题,因为函数 logout() 被调用并且页面被重定向到'home/index'。
  • 您在销毁会话后尝试设置 flashdata。阅读ellislab.com/codeigniter%20/user-guide/libraries/sessions.html 上的“销毁会话” - 此函数应该是最后一个调用的函数,甚至 flash 变量也将不再可用

标签: php


【解决方案1】:

你可以试试这样的

function logout(){

         $this->CI =& get_instance();   
         $this->CI->session->sess_destroy();
         $msg= $this->session->set_flashdata('msg','Please login to continue');
         $data = array();

         //...

         $data['msg'] = $error;
         $this->load->view('someview',$data);
         redirect(base_url().'home/index','refresh');
}



// And in your view file

<?php if($msg) : ?>
<div id="msg_text"><?php echo $msg; ?></div>
<?php endif; ?>

【讨论】:

    猜你喜欢
    • 2019-02-23
    • 2015-07-02
    • 2013-10-31
    • 2016-11-15
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多