Набор файлов cookie не попадает в следующее обновление

В моем приложении laravel 4.2 cookie устанавливается через ajax. но при обновлении страницы отображается этот неопределенный токен индекса ($_COOKIE['токен']).

//Функция добавления в корзину

setcookie('token', $token);
                $token = $this->getcookie('token');
                if(isset($token)){
                     $cart  = Cart::create([ 'user'   => $token ]); 
                } 



public function getcookie($name) { 
        $cookies = [];
        $headers = headers_list();
        foreach($headers as $header) {
            if (strpos($header, 'Set-Cookie: ') === 0) {
                $value = str_replace('&', urlencode('&'), substr($header, 12));
                parse_str(current(explode(';', $value, 1)), $pair);
                $cookies = array_merge_recursive($cookies, $pair);
            }
        }
        return $cookies[$name];
    }

И cookie устанавливается. Но при обновлении страницы я не получаю установленное значение файла cookie


person Geethu    schedule 26.03.2018    source источник


Ответы (2)


Вы пропустили, чтобы дать срок действия.

setcookie('token', $token, time() + (86400 * 30), "/");

Файл cookie будет храниться в течение 30 дней.
Проверьте это.

person Bibhudatta Sahoo    schedule 26.03.2018
comment
Но я хочу удалить этот файл cookie, как только товар будет размещен. Это может занять время, а иногда и нет. Итак, если я устанавливаю на 30 дней, смогу ли я отменить его до истечения этого срока? - person Geethu; 26.03.2018
comment
чтобы отключить его, просто сбросьте файл cookie с тем же ключом и истекшим сроком действия, чтобы он был уничтожен автоматически. - person Bibhudatta Sahoo; 26.03.2018

В laravel 4.2 прикрепление cookie в ответ можно сделать таким образом.

создать файл cookie

$cookie  = Cookie::make('unique_token', $token, time() + (86400 * 30));
return Response::make('cookie')->withCookie($cookie);

забыть печенье

$cookie  = Cookie::forget('unique_token');
return Response::make('cookie')->withCookie($cookie);
person Geethu    schedule 27.03.2018