這裏是一個代碼示例: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