php сессии не всегда хранятся в браузере Samsung Galaxy S7 - PullRequest
0 голосов
/ 03 июля 2019

При использовании моего браузера Samsung Galaxy S7 переменные сеанса php теряются при перемещении с одной страницы на другую или при обновлении целевой страницы.Это не происходит постоянно, но такое же поведение наблюдается на более чем одном телефоне.

Он отлично работает на компьютерах и других мобильных браузерах.

Я сократил коддо минимума, чтобы продемонстрировать проблему (конечно, есть правильная проверка идентификаторов / паролей пользователей, но приведенный ниже код предназначен только для демонстрации)

Страница входа (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("
");?> целевая страница

Пример целевой страницы

Перейти на следующую страницу

Я ожидаю, что переменные сеанса будут установлены, и пользователь будет оставаться в системе до тех пор, пока они не вернутся на страницу входа.Однако в браузере Galaxy S7 при обновлении целевой страницы (или даже последующей страницы) переменные сеанса часто удаляются, и пользователь перенаправляется обратно на страницу входа.

Это работает так, как я ожидаю наПК и другие мобильные браузеры (включая Chrome).

Заранее благодарим за любую помощь, которую вы можете оказать!

...