Я использую поисковую систему в PHP, которая добавляет текст в массив и помещает его в файл cookie с помощью json_encode ().
Проблема заключается в следующем: мне нужно проверить, существует ли файл 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); }
Окончательный EDIT
Задача решена.
//checks if the cookie exists if($this->input->cookie('cookiename')!=''){ //exists }
использовать get_cookie ()
if (is_null(get_cookie('cookiename'))) { //set yours cookie here }