session_start () создает новый сеанс при каждом обновлении

У меня проблема с session_start() . Он создает новый сеанс при каждом обновлении / загрузке страницы.

вот код:

 <?php $bob = session_id(); echo "Session ID on load is ".$bob; echo "<br>"; if($bob==""){ session_start(); $bob = session_id(); echo ' session ID currently is '.$bob; } // a bunch more stuff 

когда я загружаю страницу, я получаю следующее:

Идентификатор сеанса при загрузке – это идентификатор сеанса в настоящее время ed320bc5e24c871c9db8ea30e6796c14 (или вариант)

если обновить страницу, которую я получаю:

Идентификатор сеанса при загрузке – это идентификатор сеанса в настоящее время fbd69d01d511a7be382799dca7279a86 (или вариант)

идентификатор сеанса всегда пуст до session_start() и он всегда является новым session_id()

Он делает это во всех браузерах, и я проверил, чтобы убедиться, что файлы cookie включены.

путь сохранения сеанса указывается как /tmp . Я точно не знаю, где это, но просматривая свой корень и все остальные каталоги, я не могу найти файл сеанса (предполагая, что он будет выглядеть примерно как sess_fbd69d01d511a7be382799dca7279a86).

Поэтому я думаю, что что-то происходит с контуром сохранения, но я слишком новичок в этом, чтобы точно знать, и администраторы сервера не имеют ничего общего. Какими должны быть следующие мои шаги по диагностике проблемы? Сервер работает 5.3.22.

phpinfo здесь

Спасибо за любую помощь.

ps вы можете посетить pcm.pcmxa.com, чтобы увидеть проблему самостоятельно, если хотите.

Если ваш каталог сеанса (как, например, tmp, как вы сказали), недоступен для записи, то он не сможет сохранить и будет каждый раз восстанавливать новый. Вот как вы можете это проверить:

 if ( !is_writable(session_save_path()) ) { echo 'Session save path "'.session_save_path().'" is not writable!'; } 

Если это так, вам нужно, чтобы администраторы сервера выдавали то, что когда-либо выполнял ваш веб-сервер, как разрешение на запись в каталог / tmp.