Как избегать того, чтобы закрылся сеанс, закрыв браузер?

Поскольку я могу добиваться, чтобы сеанс пребывал активным всегда, если только пользователь не закроет ее.

Я помещаю пример, как я делаю ему.

Я это сделал, чтобы этого добиваться, но, как кажется, оно не функционирует:

session_start();
if ($_SESSION['user'] !== false) {
setCookie("session", $_SESSION['user'], time()+365*24*60*60);
}

И закрыв сеанс:

setCookie("session", $_SESSION['user'], time()-365*24*60*60);
2
задан 04.06.2016, 13:15
2 ответа

Функция session_start это та, которая создает и поддерживает сеанс. Внутренняя информация о сеансе не годится перемещать ее в куки-файлах (session_start уже он берется за то, чтобы посылать куки-файл с одним session_id для этого).

Чтобы увеличивать времена нужно перемещать его выборы в session_start.

session_start([
    'cookie_lifetime' => 86400,
    'gc_maxlifetime' => 86400,
]);

В примере сеансы продолжаются в один день cookie_lifetime он используется, чтобы показывать жизнь куки-файла, который он содержит session_id и с gc_maxlifetime время чистоты session_id внутри сервера.

Относительно утверждения сеансов

Сеансы с session_start они создаются, когда он называется в функцию, и они активные, хотя нет пользователя logueado (или заверенный). Это твоя ответственность записывать внутри данных о сеансе (ej: $_SESSION['user'] и(или) $_SESSION['rol'], и т.д.) информация, если пользователь - logueado или нет, кто, какие разрешения у него были в момент loguearse, и т.д.

Помещать эту информацию в куки-файлы не рекомендуемо.

5
ответ дан 24.11.2019, 14:14

В конце концов, я открыл, как делать это с htaccess очень secillo, изменяя время жизни session.cookie_lifetime в 86400, который является стандартной настройкой, но он не был установлен.

1
ответ дан 24.11.2019, 14:14