Переменные сеанса PHP, не сохраненные

Здесь на самом деле две ошибки. Первая - ошибка импорта gssapi; вторая ошибка во время gc / del (self._sock AttributeError). Вторая ошибка - просто ошибка. Мы исправим это в следующем выпуске. Но, если вы исправите ошибку импорта gssapi, этого второго AttributeError не должно произойти.

Итак, какую библиотеку gssapi вы установили? Можете ли вы сделать это в своей среде:

from gssapi.raw.misc import GSSError

Похоже, вы установили более старый / устаревший модуль python-gssapi. Вы хотите этот: https://pypi.org/project/gssapi/ (не этот: https://pypi.org/project/python-gssapi/ ) [ 115]

7
задан 19 March 2009 в 18:29
поделиться

7 ответов

Идентификатор сессии нужно нести вперед в некотором роде, чтобы та же сессия могла использоваться более чем несколько страниц. В целом это сделано с cookie (см. session.use_cookies) но это может также быть сделано в URL или в формах (см. session.use_trans_sid).

Настолько сначала необходимо удостовериться, что идентификатор сессии передается так, чтобы PHP мог загрузить правильные данные сессии и сессии.

См. также мое понимание корректных сессий PHP?

2
ответ дан 6 December 2019 в 14:09
поделиться

session_register() не требуется и может вызывать проблему здесь. Прочитайте документы о session_register() - это предназначается для присвоения переменных сеанса с помощью существующих переменных.

и отсюда:

Ну, session_register () говорит PHP, что определенную глобальную переменную нужно считать переменной сеанса. Это означает, что в конце выполнения сценария (который является, когда записи данных сессии обычно происходят), получающееся значение той глобальной переменной будет записано с помощью текущих включенных обработчиков сессий.

Я думаю, что это - проблема, которую Вы испытываете. В конце выполнения сценария перезаписывается переменная сеанса.

7
ответ дан 6 December 2019 в 14:09
поделиться

Одна ошибка, которую я вижу, состоит в том, что в первом файле Вы устанавливаете $_SESSION['textvar'] и во втором файле Вы звоните $_SESSION['newvar'].

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

Я также пытался удалить session_register() и код все еще работает отлично.

2
ответ дан 6 December 2019 в 14:09
поделиться

"session_register () принимает переменное количество аргументов, любой из которых может быть или строкой, содержащей название переменной или массивом, состоящим из имен переменной или других массивов. Для каждого имени, session_register () регистрирует глобальную переменную в том имени на текущей сессии".

потому что у Вас нет переменных с теми именами, результат будет непредсказуемый.

просто используйте $_SESSION[$key] = $value;

1
ответ дан 6 December 2019 в 14:09
поделиться

Если все вышеупомянутое не решит проблему, то я просто спрошу очевидное: не было бы никаких пробелов или новых строк перед вводным тегом PHP?

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

1
ответ дан 6 December 2019 в 14:09
поделиться

Используйте некоторый инструмент и проверьте http заголовки, таким образом, Вы видите, как cookie отправляется. Возможно, Ваш веб-сервер настроен мисс и отсылка cookie с недопустимым другим доменом.

Вы могли бы хотеть посмотреть на выполнение session_set_cookie_params () по каждому запросу и проверке корректный домен, путь и такой установлены.

0
ответ дан 6 December 2019 в 14:09
поделиться

Используйте session_register в обоих файлах, и он должен работать.

-1
ответ дан 6 December 2019 в 14:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: