php codeigniter中的cookie设置不正确?
我已经在codeigniter中创建了基于cookie的基本登录设置。 像这样php codeigniter中的cookie设置不正确?,php,codeigniter,cookies,Php,Codeigniter,Cookies,我已经在codeigniter中创建了基于cookie的基本登录设置。 像这样 class Display extends CI_Controller { public function Display() { parent::__construct(); } public function index() { //var_dump($_COOKIE); if (isset($_COOKIE["user"])){ redirect('home')
class Display extends CI_Controller {
public function Display() {
parent::__construct();
}
public function index() {
//var_dump($_COOKIE);
if (isset($_COOKIE["user"])){
redirect('home')
}else{
redirect('display/login');
}
}
public function login() {
//var_dump($_COOKIE);
if (isset($_COOKIE["user"])){
$this->load->view('home');
}else{
$username = $this->input->post('username');
//some validation
setcookie("user",$username,time()+60*60*24*30);
redirect('home');
}
}
}
在home controller中,我检查cookies以访问页面
class Home extends CI_Controller {
public function Home() {
parent::__construct();
//var_dump(get_cookie("user"));exit;
if (isset($_COOKIE["user"]) == false){
redirect('display/login');
}
}
}
我在这里面临的问题是我无法在类的构造函数中获取cookie。在访问类中的任何函数之前,我需要检查类中的cookie。正确的方法是什么?。提前感谢。您最好使用CodeIgniter自己的实现(Cookie\u Helper):您不分配Cookie的参数,因此它会获得分配给它的页面路径,结果是
/login
或类似的内容,并且不会发送到页面的其他部分,如/home
,或者仅仅是根。将setcookie()
like更改为如下内容:
setcookie("user",$username,time()+60*60*24*30, '/'); // notice the added path at the end
此外,任何人都可以在其客户机中设置cookie,因为身份验证根本不安全,所以只能中继cookie的存在。任何人都可以更改其用户cookie的内容。签出
使用$this->input->set_cookie()
设置cookie,使用$this->input->cookie()
获取cookie出于好奇,您是否试图在设置cookie的相同请求中获取cookie?@diggersworld基本上是我使用get_cookie().检查一下这一点,我不担心项目的安全性,这很基本。谢谢