PHP: сеанс уже запущен - игнорирование session_start() происходит только в окнах
Возможный дубликат:
Уже начатые сеансы PHP
Я запустил свой PHP-проект на окнах, а также Mac с тем же кодом. Но я получил эту ошибку, когда запускаю свой проект в окнах, а не на Mac.
сообщение об ошибке.
A session had already been started - ignoring session_start()
который приходит только в системе Windows. Но в Mac я не получил сообщение об ошибке.
Пожалуйста, дайте мне решение.....
Ответы
Ответ 1
Вы сказали, что вы запускаете сеанс с проверкой:
if(!isset($_SESSION)){
session_start();
}
Дело в том, что $_SESSION всегда существует, и если вы не помещаете что-то в него, тогда он будет всегда пустым, поэтому statment вернется всегда true.
Ответ 2
Я не знал, почему окна показывают ошибку и Mac не делают.
Но вы можете попробовать заменить все the session_start()
на
if(!isset($_SESSION))
{
session_start();
}
Это поможет вам..
Ответ 3
Это сообщение E_NOTICE
. Причина, по которой вы видите это только на машине с Windows, скорее всего, потому что у вас есть error_reporting
по-разному.
Если вы выполняете поиск php.ini
для error_reporting
, вы должны исключить E_NOTICE
, если вы не хотите его видеть.
В качестве альтернативы, исправьте свой код, чтобы не запускать сеанс более одного раза. В идеале у вас будет только один файл основного кода, который запустит ваш сеанс, а другие экземпляры session_start()
(т.е. Не помещают его на каждую страницу). Затем вы можете включить это на каждой странице или создать шаблон маршрутизации, который обеспечит, чтобы код инициализации вызывался в каждой папке.
Ответ 4
Посмотрите на session.auto_start в php.ini(http://php.net/session.auto-start), скорее всего сеанс автоматически запустится