gpt4 book ai didi

php - 如何在 Silex 中设置和获取 cookie?

转载 作者:可可西里 更新时间:2023-10-31 22:12:58 24 4
gpt4 key购买 nike

如标题所示,

这是代码...

public function index(Request $request, Application $app)
{
$cookies = $request->cookies;
print_r($request->cookies);
if(!$cookies->has("recordsPerPage"))
{
$response = new Response();
$cookie = new Cookie("recordsPerPage", $app['defaultRecordsPerPage']);
$response->headers->setCookie($cookie);
}
print_r($request->cookies);exit; //prints nothing here !!
}

我也尝试在 $app->after() 中设置它但失败了。除了在 Controller 中,您还有其他设置 cookie 的方法吗?

谢谢。

最佳答案

Cookie 随响应设置,并在下一次请求时可用。所以你必须用这个 cookie 返回响应,如果你希望它在请求中可用,让它成为一个重定向响应,这样浏览器将设置 cookie 并使用这个新创建的 cookie 发出下一个请求:

$cookies = $request->cookies;
if(!$cookies->has("recordsPerPage"))
{
$cookie = new Cookie("recordsPerPage", $app['defaultRecordsPerPage']);
$response = Response::create('', 302, array("Location" => "http://127.0.0.1/whatever/"));
$response->headers->setCookie($cookie);
return $response;
}else{
return print_r($cookies, 1);
}

其他可能性是直接在请求中设置此 cookie ($request->cookies->set('recordsPerPage', $app['defaultRecordsPerPage']);) 但你仍然必须返回带有此 cookie 的响应以在浏览器中设置它。

关于php - 如何在 Silex 中设置和获取 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14548107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com