У меня есть проблема, где я проигрываю сессию PHP между 2 страницами.
session_start () включен в файл, названный сессией-inc.php в каждую страницу, требующую, чтобы сессия была установлена. Это работает на все страницы на сайте кроме одной конкретной страницы, участника-profile.php. Когда эту страницу посещают, новая сессия с другим идентификатором (то же имя сессии) устанавливается и используется вместо этого.
Еще несколько деталей:
Помещение session_start () выше включать ('сессия-inc.php') в членском-profile.php файле является быстрой и грязной фиксацией для этой проблемы, но я задаюсь вопросом, знает ли кто-либо, почему это произошло бы.
Удачи
Будет
Согласно документации PHP, SESSIC_START
должны быть вызваны до того, как любой вывод отправляется обратно в браузер - может ли эта страница иметь мошеннический CR / LF, Unicode Byte-One Марк или аналогичный, который вызывает вывод перед вами , включают («Session-inc.php»)
?
Обнаружена проблема
В начале основного включаемого файла второго домена была отметка порядка байтов. Как заявил Кен, не может быть никаких выходных данных до начала сеанса, он неправильно настраивал сеанс.
При переносе устаревшего сайта с PHP4 на PHP5 я заметил Параметр конфигурации php.ini, который заставляет php автоматически запускать сеанс при каждом запросе. Это альтернатива размещению session_start ()
на каждой странице ...
Есть несколько способов включить этот параметр:
Поместите следующую строку в php.ini:
session.auto_start = on
или поместите это в конфигурацию виртуального сайта apache или в файл .htaccess:
<IfModule mod_php5.c>
php_flag session.auto_start on
</IfModule>
, и это должно сделать изменения $ _SESSION доступными на всех страницах