【问题标题】:CodeIgniter setting userdata sessionCodeIgniter 设置用户数据会话
【发布时间】:2012-08-03 12:22:55
【问题描述】:

大家好,将 userdata 设置为 true 有点问题,也许这里有人可以帮助我?

我正在使用 codeigniter

这是我的控制器,我在其中设置用户数据并重定向到另一个控制器“站点”并调用函数 members_area

    if($query) // if the users pass/user is right
    {
        $data = array(
        'username' => $this->input->post('username'),
        'is_logged_in' => true      
        );
        $this->session->set_userdata($data);
        redirect('site/members_area');
    }
    else{
    $this->index(); 

    }

那么这是我的站点控制器:

function __construct(){

    parent::__construct();
    $this->is_logged_in();
}

function members_area()
{

    $this->load->view('members_area');
}

function is_logged_in()
{
    $is_logged_in = $this->session->userdata('is_logged_in');

    if(!isset($is_logged_in) ||  $is_logged_in != true)
    {
        echo 'You don\'t have permission to access this page. <a href="../login">Login</a>';
        die();

    }

}

你们怎么看?非常感谢!

【问题讨论】:

  • 那么发生了什么?请详细告知
  • 在成功登录并被重定向到 members_area 后仍然说我没有权限
  • 你添加了$this->load->library('session');在您的站点控制器中的任何地方(最好是构造函数)?
  • 我正在配置中自动加载会话,虽然我也尝试过以您的方式加载它并且仍然相同

标签: codeigniter session


【解决方案1】:

通过在配置文件夹中的 autoload.php 中设置 $config['cookie_secure'] = FALSE; 来修复它,因为在保护 cookie 之前它是 TRUE 的,任何关于为什么可能会很棒的见解?但这解决了问题:)

【讨论】:

  • 如果设置为 true,只有在存在安全连接时才会设置 cookie,即当您的网站在 HTTPS 上运行时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多