无法在codeigniter中检索cookie

时间:2013-07-01 07:08:39

标签: php codeigniter cookies

我正在尝试在 codeigniter 模型中使用登录功能,但无法在那里检索Cookie。

它返回bool false。

我尝试过搜索问题,其中一个问题是没有设置Cookie, 但是我的cookie是在浏览器中设置的,位于域localhost下。我曾尝试在不同的项目中使用早期的localhost上的cookie,没有codeigniter,我可以在localhost上检索cookie。

此处$_COOKIE['username']会抛出错误无效的索引“用户名”,$this->input->cookie('username')会返回bool(false)。但我可以在浏览器中看到“用户名”cookie。

设置和检索的Cookie位于不同的文件中。

public function checkLogin(){

    $this->load->helper('cookie');

    $row['user']    = $this->input->cookie('username', TRUE);
    $row['handle'] = $this->input->cookie('email', TRUE);
    $row['id']      = $this->input->cookie('pid', TRUE);
    $row['type']    = $this->input->cookie('type', TRUE);
    $row['slug']    = $this->input->cookie('slug', TRUE);
    $row['cuid']    = $this->input->cookie('cuid', TRUE);

    return  $this->input->cookie('username', false);
    }
}

我将Cookie设置在另一个文件中,

setcookie("username",$user, time()+60*60*60*24*30);
setcookie("email",$handle, time()+60*60*60*24*30);
setcookie("pid",$row['id'], time()+60*60*24*30*60);
setcookie("type",$type, time()+60*60*24*30*60);
setcookie("slug",$row['slug'], time()+60*60*24*30*60);
setcookie("city",$row['city'], time()+60*60*24*60*30);
setcookie("cuid", $code, time()+60*60*24*60*30);

请询问所需的更多信息。我在我的控制器中使用了构造函数(两个下划线),而不是在模型中。设置cookie的表单不在控制器或模型中,而是在根文件夹中。我也尝试使用$this->input->set_cookie();设置Cookie。

1 个答案:

答案 0 :(得分:1)

Localhost可以根据设置cookie的文件设置路径。

明确声明路径。

setcookie("username",$user, time()+60*60*60*24*30, "/");

可以在任何地方检索带路径“/”的Cookie,否则无法检索。