1

我试图在codeigniter模型中具有登录功能,但无法在那里检索 cookie。

它返回布尔假。

我已经尝试搜索问题,其中一个问题是没有设置 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);
    }
}

我将cookies设置在不同的文件中,

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 的表单不在控制器或模型中,而是在根文件夹中。我也尝试过设置cookies $this->input->set_cookie();

4

1 回答 1

1

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

明确声明路径。

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

路径为“/”的 cookie 可以在任何地方检索,否则不能。

于 2013-07-01T09:43:55.783 回答