这是一个代码示例:
if (!empty($_GET['supahCookie']))
{
setcookie("myCookie", $_GET['supahCookie'], time()+3600*24*31);
}
$foo = empty($_COOKIE['myCookie'])?'Empty! :(':$_COOKIE['myCookie'];
echo $foo;
输出将如下;
空的!:(
首先,它似乎setcookie()
是异步执行的,但如果您稍微考虑setcookie()
一下,只需设置一个 cookie 标头即可。(小服务器<->浏览器对话)
问题是我需要立即访问新创建的 cookie。我该怎么做?
我想出的唯一方法是这个:
if (!empty($_GET['supahCookie']))
{
setcookie("myCookie", $_GET['supahCookie'], time()+3600*24*31);
unset($_GET['search_type']); // to avoind redirect loop
header('Location: ./?'.http_build_query($_GET));
}
嗯..还有一个,有点混乱:
$foo = empty($_GET['supahCookie'])?(empty($_COOKIE['myCookie'])?'Empty! :(':$_COOKIE['myCookie']):$_GET['supahCookie'];
我是不是又在这里发明了一个轮子?
有没有人有其他更优雅的解决方案?