session_start уведомляет, что он уже запущен. - PullRequest
1 голос
/ 28 февраля 2012

У меня есть php-файл, который запускает сеанс, за ним следует HTML. Позже я включаю другой файл, используя include "some_file.php". some_file.php имеет взаимодействие php и mysql, которое используется для заполнения таблицы. Теперь я также начинаю сеанс в some_file.php, так как мне нужно получить доступ к переменным сеанса. Однако я подумал, что с помощью включения мне не придется начинать сеанс снова. Но при этом я получаю сообщение об ошибке с неопределенной переменной сеанса в some_file.php, и, используя ее, я получаю уведомление о Notice: A session had already been started - ignoring session_start() in some_file.php/some_line

Ответы [ 4 ]

7 голосов
/ 28 февраля 2012

Если вы не можете убедиться, что ваш сеанс всегда запущен, вы должны проверить, начался ли он:

if(!isset($_SESSION)){
 session_start();
}
1 голос
/ 28 февраля 2012
if (session_status() !== PHP_SESSION_ACTIVE) {
    session_start();
}

http://docs.php.net/manual/en/function.session-status.php

0 голосов
/ 28 февраля 2012

Убедитесь, что у вас есть session_start() один раз после подключения к вашей базе данных (если есть) и перед выводом чего-либо вообще в браузер.Убедитесь, что перед session_start() нет пробелов, чтобы свести к минимуму случайный вывод.

0 голосов
/ 28 февраля 2012

Вы должны начать session_start() только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...