Вызов session_start() несколько раз [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Вызов session_start() несколько раз [закрыто]

Сообщение Anonymous »

Рассмотрим следующий (неполный) PHP-код:

Код: Выделить всё

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();
}
}
Здесь функция renderPage() вызывается для визуализации страницы контента, но сначала она проверяет, был ли уже открыт сеанс с клиента, с помощью checkConnectionStatus() . Последний вызывает session_start, устанавливая время жизни cookie равным 86400. После этого вызова загружается $_SESSION$, и, если установлено поле «user», то отображается страница содержимого. в противном случае мы отображаем страницу входа.
При нажатии «Отправить» на странице входа вызывается функция login($username, $password). . Наличие $username и $password проверяется с помощью isUserInDB(). Если да, то вызывается session_start (снова!) и устанавливается поле «user» $_SESSION. Затем снова вызывается renderPage(), что приводит к третьему вызову session_start().
Правильен ли этот подход для реализации входа в систему с автоматическим возобновлением предыдущего создали сеанс в течение последнего дня?
Будут ли многочисленные вызовы session_start сбрасывать срок действия файлов cookie?

Подробнее здесь: https://stackoverflow.com/questions/790 ... eral-times
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»