无法在 Code-igniter 中设置 cookie
Not able to Set cookie in Code-igniter
我无法生成 cookie 下面的代码仅适用于其他部分。
public function set(){
$cookie = array(
'name' => 'demo',
'value' => 'hello i m saved cookie',
'expire' => '86500'
);//EOF array
if($this->input->set_cookie($cookie))
{
$data = array( 'message' => 'cookie successfully set');
$this->load->view('cookies_view',$data);
}
else{
$data = array( 'message' => 'Something went wrong while creating cookie');
$this->load->view('cookies_view',$data);
}
您的值已存储在 cookie 中,$this->input->set_cookie($cookie)
这只会创建 cookie。如果你想检查是否设置了 cookie 值,你可以这样使用:
$cookie = array(
'name' => 'demo',
'value' => 'Hello i m cookies which saved in this broswer',
'expire' => '86500',
);
$this->input->set_cookie($cookie);
if(isset(get_cookie('demo'))){ // check cookie value
echo "success"; // replace with your code
}
else{
echo "failed"; // replace with your code
}
get_cookie('demo')
将 return cookie 值。
您还可以浏览 CI Manual。
确保您在文件中使用了 cookie 助手,您必须包含 cookie 助手:
$this->load->helper('cookie');
$this->input->set_cookie($cookie);
此函数 returns NULL 这就是为什么您的条件无法正常工作的原因。正在设置您的 cookie
使用$this->input->cookie('your cookie name')
检查您的状况
public function set()
{
$this->load->helper('cookie');
$cookie = array(
'name' => 'demo',
'value' => 'Hello i m cookie',
'expire' => '86500'
);
$this->input->set_cookie($cookie);
if ($this->input->cookie('demo')) {
$data['data'] = array('message' => 'cookie successfully set');
$this->load->view('your view', $data);
} else {
$data['data'] = array('message' => 'Something went wrong while creating cookie');
$this->load->view('your view', $data);
}
}
在我的案例中,经过数小时的调试后,我意识到 cookie_secure 已针对本地开发设置为 true。
所以,做一个简单的检查;
如果域不是 https 且 cookie_secure 在 config.php 中设置为 TRUE,则不会设置 cookie。改成FALSE,http和https都会设置。
我无法生成 cookie 下面的代码仅适用于其他部分。
public function set(){
$cookie = array(
'name' => 'demo',
'value' => 'hello i m saved cookie',
'expire' => '86500'
);//EOF array
if($this->input->set_cookie($cookie))
{
$data = array( 'message' => 'cookie successfully set');
$this->load->view('cookies_view',$data);
}
else{
$data = array( 'message' => 'Something went wrong while creating cookie');
$this->load->view('cookies_view',$data);
}
您的值已存储在 cookie 中,$this->input->set_cookie($cookie)
这只会创建 cookie。如果你想检查是否设置了 cookie 值,你可以这样使用:
$cookie = array(
'name' => 'demo',
'value' => 'Hello i m cookies which saved in this broswer',
'expire' => '86500',
);
$this->input->set_cookie($cookie);
if(isset(get_cookie('demo'))){ // check cookie value
echo "success"; // replace with your code
}
else{
echo "failed"; // replace with your code
}
get_cookie('demo')
将 return cookie 值。
您还可以浏览 CI Manual。
确保您在文件中使用了 cookie 助手,您必须包含 cookie 助手:
$this->load->helper('cookie');
$this->input->set_cookie($cookie);
此函数 returns NULL 这就是为什么您的条件无法正常工作的原因。正在设置您的 cookie
使用$this->input->cookie('your cookie name')
检查您的状况
public function set()
{
$this->load->helper('cookie');
$cookie = array(
'name' => 'demo',
'value' => 'Hello i m cookie',
'expire' => '86500'
);
$this->input->set_cookie($cookie);
if ($this->input->cookie('demo')) {
$data['data'] = array('message' => 'cookie successfully set');
$this->load->view('your view', $data);
} else {
$data['data'] = array('message' => 'Something went wrong while creating cookie');
$this->load->view('your view', $data);
}
}
在我的案例中,经过数小时的调试后,我意识到 cookie_secure 已针对本地开发设置为 true。
所以,做一个简单的检查;
如果域不是 https 且 cookie_secure 在 config.php 中设置为 TRUE,则不会设置 cookie。改成FALSE,http和https都会设置。