这里是一个代码示例:PHP绕过setcookie()的'pseudo asynchrony';功能
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'];
我在这里发明了一个轮子吗?
有没有人有任何其他更优雅的解决方案?
'的setcookie( '的myCookie',$ _ GET [ 'supahCookie'],时间()+ 3600 * 24 * 31); $ _ COOKIE [” myCookie'] = $ _ GET ['supahCookie'];' – Khez 2013-05-02 21:01:51