[英]Check if cookie exists in CodeIgniter
我正在使用PHP中的搜索系統,它將搜索到的文本添加到數組中,並使用json_encode()將其放入cookie中。
問題是:我需要檢查cookie是否已經存在,如果沒有,則創建它。
我正在使用以下代碼來驗證它是否存在但沒有成功:
{
$search = $this->input->post('search_text');
$types = $this->input->post('search_type');
$checkboxes = "";
if(!empty($types))
{
foreach($types as $v)
$checkboxes = $v.",";
}
//cookie
$this->load->helper('cookie');
//cookie's array
$search_history = array();
array_push($search_history, $search);
//cookie check 1
if(get_cookie('search')!=''){
echo "cookie exists";
}else
echo "cookie doesn't exist";
// set cookie
$cookie = array(
'name' => 'search',
'value' => json_encode($search_history),
'expire' => time()+86500
);
set_cookie($cookie);
//cookie check 2
if(get_cookie('search')!=''){
echo "cookie exists";
}else
echo "cookie doesn't exist";
//echo get_cookie('search');
//redirect('search/'.urlencode($search).'/'.urlencode($checkboxes));
}
我可以創建cookie並獲得它的價值,但我似乎無法找到一種方法來檢查它是否已經在PHP代碼中創建。
已經嘗試過:
if(get_cookie('search')!='')
,
if(get_cookie('search')!=null)
與
if(get_cookie('search'))
但這些似乎都不起作用。
編輯:
正如所建議的那樣,我現在正在使用它並且它不會創建cookie。
//cookie
$this->load->helper('cookie');
//cookie's array
$search_history = array();
array_push($search_history, $search);
if(cookie('search') == false){
// set cookie
$cookie = array(
'name' => 'search',
'value' => json_encode($search_history),
'expire' => time()+86500
);
set_cookie($cookie);
}
最終編輯
問題解決了。
//checks if the cookie exists
if($this->input->cookie('cookiename')!=''){
//exists
}
使用get_cookie()
if (is_null(get_cookie('cookiename'))) {
//set yours cookie here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.