在某些移动设备浏览器上,PHP会话在标头重定向中得到清除

时间:2019-04-27 04:06:54

标签: php session session-state http-redirect php-5.4

我有一个版本为5.4.45的PHP网站,在登录时,它可以在台式机系统和某些移动设备中正常工作,但在某些移动设备中,登录失败。< / p>

我的移动设备信息:

应用程序版本:Chrome 73.0.3683.90

操作系统:Android 8.1.0; Moto G(5S)Plus内部版本OPSS28.65-36-9

法律信息:版权所有2019 Google Inc.保留所有权利

我尝试了以下解决方案,但无法维持会话 -php session.use_trans_sid -PHP session lost after redirect -PHP session destroyed too soon on mobile browser(s)

我调试了该设备中的代码,然后发现重定向时会话变得清除。重定向之前,我使用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");上保持会话状态

0 个答案:

没有答案