php - 检查 Cookie 是否存在于 CodeIgniter 中

标签 php codeigniter cookies

我正在使用 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
}

关于php - 检查 Cookie 是否存在于 CodeIgniter 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25425066/

相关文章:

php - Jquery关闭事件在弹出后不起作用

php - 在结果中提供同义词或提供更正的搜索功能

php - 如何将我的表复制到转储表并删除主表中的值

php - Bootstrap 自动完成(提前输入)不起作用

php - 如何替换 MySQL ROLLUP 函数中的 NULL 类别标题?

php - Foreach 视频创建模态

php - htaccess 带有 .php 的旧文件 没有 php 的新文件

python - Tornado 安全问题

javascript - 将已接受条款的用户重定向到另一个网页(cookie 或 localStorage)

javascript - 删除 Mailchimp 弹出窗口的 cookie