簡體   English   中英

檢查CodeIgniter中是否存在cookie

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM