"Неопределенная переменная: _SESSION" VS. «Сессия уже началась»

Привет. У меня есть некоторые скрипты php. В одном из них у меня есть код session_start (), и когда у меня в другом скрипте снова есть session_start (), я получаю уведомление:

Примечание: сеанс уже запущен …

Это логично. Но когда я удаляю его, я получаю сообщение об ошибке / уведомлении:

Примечание. Неопределенная переменная: _SESSION

Зачем? И как мне это исправить? Сценарии прекрасно работают, когда у меня есть session_start () два места в скрипте (только получить небольшое уведомление), но не работает вообще, когда у меня нет двух session_start ().

Единственное решение – иметь

error_reporting(E_ALL ^ E_NOTICE); 

в моем сценарии? И разве эта плохая практика просто игнорирует уведомления?

Редактировать:

Части моего кода:

  try { //session_start(); $STH = DB::prepare ( "UPDATE users SET DJ_name=?, DJ_showname=? WHERE id=?" ); $STH->execute(array($_POST['DJ_name'], $_POST['DJ_showname'], $_SESSION['userid'])); pre_dump($_SESSION); $_SESSION['DJ_name'] = $_POST['DJ_name']; $_SESSION['DJ_showname'] = $_POST['DJ_showname']; } 

Вывод:

Примечание. Неопределенная переменная: _SESSION в D: ….. \ main.php в строке 19

Примечание. Неопределенная переменная: _SESSION в D: ….. \ main.php в строке 21

НОЛЬ

Код pre_dump:

  function pre_dump($var) { echo '<pre>'; var_dump($var); echo '</pre>'; } 

Related of ""Неопределенная переменная: _SESSION" VS. «Сессия уже началась»"

Я сам нашел ошибку. Имел session_start () где-то в моем скрипте, который я не заметил. Сейчас все работает.

Звучит для меня как unset($_SESSION); назывался.

Недавно я столкнулся с той же проблемой. Я не смог получить доступ к содержимому переменной $ _SESSION.

1) Это было связано с попыткой доступа к переменной $ _SESSION до объявления session_start(); В моем случае я уже начал сеанс в файле header.php. Но я обращался к переменной $ _SESSION перед оператором include. Пример;

 <?php $username = $_SESSION['username']; //do some logical operation!!! ?> <?php include("header.php");?> 

вместо того, чтобы делать что-то подобное

 <?php include("header.php");?> <?php $username = $_SESSION['username']; //do some logical operation!!! ?> 

2) Еще одна вещь, которая может вызвать эту проблему, возможно, не запускает сеанс в верхней части всех файлов, которым может потребоваться доступ к переменной $ _SESSION, используя

 session_start(); 

Надеюсь, это поможет любому, кто наткнулся на ту же проблему. Хотя это происходит в поздний час.

$ _SESSION всегда существует независимо от того, запускаете ли вы session_start () или нет. Поэтому я думаю, что что-то другое должно вызывать вашу ошибку.

Не могли бы вы опубликовать код? Возможно, вы где-то отключили переменную (см. Эту ссылку ).