Создайте сеанс во время вызова ajax (php-xajax)

Мне нужно избегать создания сеанса в приложении, если это не является абсолютно необходимым.

Я заметил, что вызовы xajax не работают должным образом, если сеанс не запущен: (Мой первый подход заключался в том, чтобы создать сеанс (если он не существует) в начале функции xajax, однако он не работает первый раз пользователь вызывает вызов (он работает второй раз с момента создания сеанса).

Есть ли способ справиться с этой ситуацией?

Изменить: пример кода:

function example ($parameters) { if (!isset($_COOKIE["PHPSESSID"])) { session_start(); // we create the session if it didn't exist previously } $response = new XajaxResponse(); ..... return $response; } 

Моя идея – создать сеанс, когда пользователь делает вызов ajax. В этой ситуации, в первый раз, когда я вызываю функцию «example», она не работает. Во-вторых, это нормально, я думаю, потому что сессия была создана.

EDIT: Привет, я заметил проблему в chrome и explorer 🙁 Первый вызов ajax не получен (я не получаю ответа). Чем это означает, что пользователю нужно дважды щелкнуть, чтобы получить правильный ответ (со всплывающим пример)

Благодаря!

Проблема заключается в том, что вы не вызываете session_start() если $_COOKIE['PHPSESSID'] установлен, и, следовательно, сеанс не инициализируется для текущего запроса ajax. Вы должны вызвать session_start() для каждого скрипта, использующего сеанс, – это не только для инициализации сеанса.

 function example ($parameters) { // If this function uses the session, you MUST call session_start() // Don't do it conditionally. session_start(); $response = new XajaxResponse(); ..... return $response; } 

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

Для сеанса вы должны перезагрузить страницу без перезагрузки. Сеанс страницы не может создать ….. И Ajax полезен без перезагрузки всей страницы.