php会话未始终存储在Samsung Galaxy S7浏览器上

时间:2019-07-03 08:27:30

标签: php session-variables samsung-galaxy

使用我的Samsung Galaxy S7浏览器时,php会话变量在从一页移动到另一页或刷新登录页面时丢失。这并非一直发生,但在多部手机上会遇到相同的行为。

它在计算机和其他移动浏览器上正常工作。

我已将代码精简到最低限度以说明问题(当然,对用户ID /密码进行了适当的检查,但是下面的代码仅用于演示)

登录页面(logintest1.php)

<?
session_start();
$_SESSION=array();
$logout_time=5000; //how long until auto logoff?

if(!empty($_POST['userid']) && !empty($_POST['password'])){
    //check login credentials
    $_SESSION['test']['user_name']="test user";
    $_SESSION['test']['user_id']=13;
    header("location:logintest2.php");
    exit();
}
?>

<!doctype html>
<html lang="en">
<head>
<title>login</title>
</head>

<body>

<h4>logintest1.php</h4>
<form class="form-signin" method="post" action="<?=$_SERVER['PHP_SELF'];?>">
    <h1>Please sign in</h1>
    <label for="userid_id">Username</label>
    <input type="text" id="userid_id" name="userid" required autofocus><BR>
    <label for="inputPassword" >Password</label>
    <input type="password" id="inputPassword" name="password" placeholder="Password" required><BR>
    <button type="submit">Sign in</button> 
</form>
</body>
</html>

着陆页(logintest2.php):

<? 
session_start();
if(!isset($_SESSION['test']['user_id'])){
    header("location:logintest1.php");
    exit();
}
echo("<PRE>");print_r($_SESSION);echo("</PRE>");
?>

<!doctype html>
<html lang="en">
<head>
<title>landing page</title>
</head>
<body>
<h3>Example landing page</h3>
<?
echo("<PRE>");print_r($_SESSION);echo("</PRE>");
?>
<a href='logintest3.php'>Go to next page</a>
</body>
</html>

我希望设置会话变量,并且用户保持登录状态,直到它们返回登录页面为止。但是,使用Galaxy S7浏览器,在刷新登录页面(甚至是后续页面)时,会话变量会被频繁删除,并且用户将被重定向回到登录页面。

这在PC和其他移动浏览器(包括Chrome)上可以正常工作。

在此先感谢您提供的帮助!

0 个答案:

没有答案