Неопределенная переменная: _SESSION при отправке переменных через сообщение через триггер JavaScript

В моем файле index.php я вызываю session_start() и устанавливаю пару переменных сеанса. Во втором PHP-файле я хотел бы получить доступ к этим переменным сеанса.

Дело в том, что этот PHP-файл является чисто внутренним скриптом и POSTED, когда запускается функция JavaScript. Когда вызов POST пытается вызвать скрипт во втором PHP-файле, журнал ошибок сообщает, что:

_SESSION – неопределенная переменная.

Я попытался вызвать start_session() и session_regenerate_id() в верхней части второго PHP-файла, но проблема сохранилась.

Я предполагаю, что происходит, потому что в POST этот PHP-файл находится в своем собственном сеансе, так как я все еще могу сделать это $_COOKIE[ini_get('session.name')] .

Информация, которую я пытаюсь передать во второй файл PHP, не является чем-то, что нужно защитить, но было бы неплохо узнать в будущем, как это сделать: вызвать файл PHP через POST и по-прежнему иметь мои переменные сеанса ,

В POST-запросах и сеансах нет ничего особенного.
Вам просто нужно вызвать session_start в верхней части каждого запроса файла, в который вы хотите использовать сеансы, вот и все.

Повторите попытку с этим, это должно сработать.

 session_start(); 

является ответом на большинство вопросов, подобных этому. я боролся с этой проблемой, и я решил свою проблему с этим кодом

  if (version_compare(PHP_VERSION, '5.4.0', '<')) { if(session_id() == '') {session_start();} } else { if (session_status() == PHP_SESSION_NONE) {session_start();} } 

вы должны включить

 <?php session_start();?> 

в начале вашего документа это запустит SESSION ENGINE и позволит вам установить переменные сеанса (ie. $_SESSION['var1'], $_SESSION['var2'], etc)

Если вы хотите получать значения из $ _POST, вы можете связать их вместе:

 $_SESSION['var1'] = $_POST['answer1'] 

Я столкнулся с этой проблемой, и, попробовав много вещей, я включил session_start () во второй скрипт, и это сработало.

Недавно я столкнулся с той же проблемой. Я не смог получить доступ к содержимому переменной $ _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_start () – ответ. И вот еще один способ:

 <?php if (session_id() == "") session_start(); ?> 

Это обеспечит запуск нового сеанса, только если у вас уже нет текущего сеанса. И, конечно, как говорили другие, обязательно разместите это в верхней части html.

Добавьте следующий файл в файл browse.php:

 error_reporting( error_reporting() & ~E_NOTICE ); if( ! ini_get('date.timezone') ) { date_default_timezone_set('GMT'); } if (version_compare(PHP_VERSION, '5.4.0', '<')) { if(session_id() == '') {session_start();} } else { if (session_status() == PHP_SESSION_NONE) {session_start();} } 

Он будет работать нормально.