Код: Выделить всё
function renderPage() {
$currentUser = checkConnectionStatus();
if (!strcmp($currentUser, "")) {
renderLoginPage();
} else {
renderContentPage($currentUser);
}
}
function checkConnectionStatus() {
$currentUser = "";
session_start(['cookie_lifetime' => 86400]); // Create a session with a one day lifetime
if (isset($_SESSION["user"])) {
$currentUser = $_SESSION["user"];
error_log("User " . $_SESSION["user"] . " already logged in!");
} else {
error_log("Currently there is no user with a living session on this machine");
}
return $currentUser;
}
function login($username, $password) {
if (isUserInDB($username, $password)) {
session_start(['cookie_lifetime' => 86400]); // Create a session with a one day lifetime
$_SESSION["user"] = $username;
renderPage();
}
}
При нажатии «Отправить» на странице входа вызывается функция login($username, $password). . Наличие $username и $password проверяется с помощью isUserInDB(). Если да, то вызывается session_start (снова!) и устанавливается поле «user» $_SESSION. Затем снова вызывается renderPage(), что приводит к третьему вызову session_start().
Правильен ли этот подход для реализации входа в систему с автоматическим возобновлением предыдущего создали сеанс в течение последнего дня?
Будут ли многочисленные вызовы session_start сбрасывать срок действия файлов cookie?
Подробнее здесь: https://stackoverflow.com/questions/790 ... eral-times
Мобильная версия