Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter会话类的问题_Php_Codeigniter_Session - Fatal编程技术网

Php Codeigniter会话类的问题

Php Codeigniter会话类的问题,php,codeigniter,session,Php,Codeigniter,Session,这是我的问题。。。我将这些行添加到CI_控制器的构造中 $this->load->library("session"); if($this->session->userdata("var")==FALSE) { $this->session->set_userdata("var", "value"); } 当我在子类中使用$this->session->userdata(“var”)时,它没有值。我通过在

这是我的问题。。。我将这些行添加到CI_控制器的构造中

    $this->load->library("session");
    if($this->session->userdata("var")==FALSE)
    {
        $this->session->set_userdata("var", "value");   
    }
当我在子类中使用$this->session->userdata(“var”)时,它没有值。我通过在CI_COntroller的构造和子类的构造中显示$this->session->userdata(“var”)的值来测试它,它在父类上显示值,但在子类上不显示

还有一件事,在重新加载页面3到4次后。它工作得很好


我将非常感谢你的回答。(很抱歉我不会说英语)

你本可以这样做的

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

$var    =   $this->session->userdata("var");

if(!$var)
{
    $this->session->set_userdata("var", "value");   
}

你本可以这样做的

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

$var    =   $this->session->userdata("var");

if(!$var)
{
    $this->session->set_userdata("var", "value");   
}
你应该这样做

$this->load->library("session");
    if(!$this->session->userdata("var"))
    {
        $this->session->set_userdata("var", "value");   
    }
原因
userdata()
方法在设置或不设置会话数据时返回false和true。

您应该这样做

$this->load->library("session");
    if(!$this->session->userdata("var"))
    {
        $this->session->set_userdata("var", "value");   
    }

原因
userdata()
如果设置或未设置会话数据,则方法返回false和true。

是否使用cookie或存储在数据库中?mmmm。。。我使用codeigniter的库会话,它不适用于cookies吗?。。。我不明白你的意思会话库默认在cookies中存储数据,除非你将配置设置为使用数据库存储会话。哦,我明白了。。。所以我在使用cookies你能检查Firebug或Webkit控制台,看看你是否在请求中得到一个设置的Cookie响应头吗?你是在使用Cookie还是存储在数据库中?嗯。。。我使用codeigniter的库会话,它不适用于cookies吗?。。。我不明白你的意思会话库默认在cookies中存储数据,除非你将配置设置为使用数据库存储会话。哦,我明白了。。。所以我在使用Cookies你能检查Firebug或Webkit控制台,看看你是否在请求上得到了一个设置的Cookie响应头吗$var和
$var==FALSE
相同的表达式?@kidonchu无论如何,最佳实践是我在上面的答案中向你展示的;)是不是
$var
$var==FALSE
相同的表达式?@kidonchu无论如何,最佳实践是我在上面的答案中向你展示的;)