【问题标题】:session when new tab in codeIgnitercodeIgniter 中的新选项卡时的会话
【发布时间】:2017-01-05 07:17:05
【问题描述】:

当用户使用值 ="yes" 登录时,我创建了一个会话 当用户注销时,值得到“否” 在主页控制器我检查会话是否等于是然后打开主页如果否则然后打开登录页面 问题是如果我打开了一个新的水龙头或者我在浏览器的 url 上写了“localhost/myprojectname”,它就会打开登录页面

登录控制器

        if($thePassword==$password){
            $this->session->set_userdata('log','yes');
            redirect(welcome);
        }

欢迎控制器(主页)

if($this->session->userdata('log')=="yes"){
    $this->load->view('home');
}
else{
    redirect(LoginController);
}

【问题讨论】:

  • 你的session_start代码在哪里
  • 我认为我不需要在 codeIgniter 中启动会话
  • 我的意思是你在哪里加载库$this->load->library('session');
  • 在 config/autoload.php 中
  • 试试这个并检查echo "<pre>". print_r((array)$this->session, true) ."</pre>";

标签: php codeigniter session


【解决方案1】:

首先在控制器的构造函数中加载会话库,如下所示:

$this->load->library('session');

然后

 if($thePassword==$password){
            $this->session->set_userdata('log',true);
            redirect(welcome);
        }

欢迎控制器(主页)

if($this->session->has_userdata('log') && $this->session->userdata('log') == true){
    $this->load->view('home');
}
else{
    redirect(LoginController);
}

【讨论】:

  • 同样的问题函数logout(){ $this->session->set_userdata('log',false);重定向(登录控制器);我在注销控制器中有这段代码
  • 首先取消设置,然后将会话设置为 false。
  • $this->session->unset_userdata('log'); 然后如上所述将其设置为 false。
  • 打开新标签时还是有同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
相关资源
最近更新 更多