Невозможно настроить PHP cookie на одной странице

У меня возникли проблемы с настройкой файлов cookie на одной странице. Я использовал файлы cookie на своем сайте, и он отлично работает, я стараюсь сделать php в отдельном файле. Теперь я устанавливаю файл cookie на одной странице, но, похоже, он не работает.

$expire = time()+5; setcookie("rb_vote", 1, $expire); 

затем проверьте, установлен ли он

 if(isset($_COOKIE["rb_vote"])) { echo "IS SET";} else { echo "IS NOT SET"; } 

Он всегда говорит, что не установлен. Я пытался сделать это при загрузке страницы, но все равно не работает.

См. Руководство по setcookie () (выделение мое):

После того, как файлы cookie установлены, к ним можно получить доступ при загрузке следующей страницы массивами $ _COOKIE или $ HTTP_COOKIE_VARS. Обратите внимание, что суперклассы, такие как $ _COOKIE, стали доступны в PHP 4.1.0. Значения Cookie также существуют в $ _REQUEST

Вот приблизительное предложение. Это несовершенно, потому что он не может гарантировать, что cookie действительно будет установлен, но может сделать в вашем случае.

Я только что столкнулся с этой проблемой в Vanilla Forum. При загрузке первой страницы перед началом сеанса создается куки-файл сеанса, но каждый раз, когда приложение хочет получить доступ к переменным сеанса (для добавления к ним), он ищет текущий идентификатор сеанса в $ _COOKIE, который не устанавливаются до следующей загрузки страницы.

Мое обходное решение – установить элемент $ _COOKIE вручную при создании файла cookie.

 // Create a cookie to identify the session. // This line already exists. $Name is the cookie name. // $SessionID is a random md5 ID that has just been generated. setcookie($Name, $SessionID, $Expire, $Path, $Domain); // Set the cookie for the remainder of the page. This is a workaround. if (!isset($_COOKIE[$Name])) $_COOKIE[$Name] = $SessionID; 

Я поднял это как вину с Vanilla ( https://github.com/vanillaforums/Garden/issues/1568 ), так как это обходное решение кажется немного взломанным, но на данный момент оно, безусловно, обострило проблему.

PHP5.3 Vanilla Forum Version 2.0.18.4