Я только что столкнулся с этой проблемой на форуме Vanilla.При загрузке первой страницы, перед тем как сеанс был установлен, создается cookie сеанса, но затем каждый раз, когда приложение хочет получить доступ к переменным сеанса (чтобы добавить к ним), оно ищет идентификатор текущего сеанса в $ _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