PHP Session очищается при перенаправлении заголовка в некоторых браузерах мобильных устройств - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть веб-сайт PHP версии 5.4.45, хотя при входе в систему он работает, как и ожидалось, в настольных компьютерах и на некоторых мобильных устройствах, но на на некоторых мобильных устройствах сбой входа в систему .

Информация о моем мобильном устройстве:

Версия приложения: Chrome 73.0.3683.90

Операционная система: Android 8.1.0; Moto G (5S) Plus Build OPSS28.65-36-9

Правовая информация: Copyright 2019 Google Inc. Все права защищены

Я пробовал использовать следующие решения, но не могу сохранить сеанс - php session.use_trans_sid - Сессия PHP потеряна после перенаправления - Сеанс PHP слишком рано уничтожен в мобильных браузерах

Я отладил код на этом устройстве, а затем обнаружил, что сеанс очищается при перенаправлении. Перед перенаправлением я проверил сеанс с var_dump($_SESSION), он показывает все значения сеанса, которые я установил ранее после перенаправления header("Location: $redirectURL");, на перенаправленной странице, которую я проверяю с var_dump($_SESSION), отображается пустой массив.

Я также пытался в PHP 7.1.X и 7.2.X, но это дает тот же результат - сеанс очищается.

Мои образцы кодов:

authenticate.php

session_start();

// temporarily I set the flag to true, 
// actually it will set after database check
$login = true;

if ($login == true) {

    // Session variable set
    $_SESSION['userID'] = "user01";

    $redirectURL = "profile.php";
    header("Location: $redirectURL");
    exit();

} else {

    $redirectURL = "login.php";
    header("Location: $redirectURL");
    exit();
}

profile.php

session_start();

// Display empty string
echo($_SESSION['userID']);

Мне нужно было поддерживать сеанс при header("Location: $redirectURL");

...