Cookie集未在下次刷新

时间:2018-03-26 12:15:31

标签: php laravel cookies laravel-4.2

在我的laravel 4.2应用程序中,cookie是通过ajax设置的。但在页面刷新时,它显示未定义的索引标记($ _COOKIE ['token'])。

//添加到购物车功能

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值

2 个答案:

答案 0 :(得分:1)

你错过了过期时间。

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

将cookie保存30天 查看This

答案 1 :(得分:0)

在laravel 4.2中,可以通过这种方式附加响应cookie。

创建cookie

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

忘记cookie

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