我有一个版本为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");
上保持会话状态