PHP $ _SESSION иногда не читается - PullRequest
0 голосов
/ 22 марта 2020

У меня есть страница WordPress, которая перенаправляет на внешнюю страницу, которая затем перенаправляет обратно на страницу на моем сервере.

страница 1

<?php
session_start();
include('../../../wp-load.php');
$varPostData = $x. '|' . $y. '|' . $z. '|' . $a. '|' . $b. '|' . $c. '|' . $d. '|' . $e. '|' . $f. '|' . $g. '|' . $h. '|' . $i. '|' . $j. '|' . $k;
$_SESSION['PostData'] = $varPostData;

//some redirect code

exit();

страница 2

<?php
session_start();
$PostDataArray = explode('|', $_SESSION['PostData']);

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

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

Эта "ошибка" в последнее время усилилась. Если раньше это случалось редко (например, один раз в 50 или 100 раз), то теперь это происходит один раз в шесть раз.

Это заставляет меня подозревать, что это связано с конфигурацией сервера. Я на Ubuntu с php 5.6 и , вот часть моего php .ini, которая связана с сессиями .

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

Я прошел этот контрольный список, и все проверяется

  1. session_start (); вызывается в верхней части страницы, без пробелов, без ничего
  2. завершить скрипт с помощью exit (); после перенаправления
  3. это WordPress с логином, поэтому пользователи не смогут войти в систему, если не было файлов cookie
  4. register_globals не существует в php 5.6, поэтому я не думаю, что это применяется?
  5. Я убедился, что сессия не удалена или не очищена (это там, где файл существует в / var / lib / php /)
  6. Я убедился, что суперглобальная переменная $ _SESSION не удаляется.
  7. Я перенаправляю на тот же домен с www*1038*
  8. мои расширения php (это работает большую часть времени)

Кроме того, я проверил журналы доступа, и между этими двумя страницами не было запрошено никакой другой страницы / ресурса (так что никаких разных сеансов).

Чего мне не хватает? Любая подсказка будет полезна.

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