Вызывать session_regenerate_id() на каждой странице может быть немного излишним, в зависимости от настроек. Эта функция используется для предотвращения захвата сеанса и должна использоваться всякий раз, когда пользователь повышает уровень привилегий (например, вход в систему). Обычно вы переключаетесь на https-соединение после входа пользователя в систему, а это означает, что вам нужно только вызвать session_regenerate_id() один раз, когда новый файл cookie будет транслироваться через безопасное соединение и не сможет быть подслушивается. Однако, если у вас нет сертификата SSL на вашем сервере, регенерация файла cookie сеанса на каждой странице может быть хорошим вариантом.
Когда вы вызываете session_regenerate_id(), вам не нужно копировать данные сеанса. Все это позаботится о вас с помощью PHP. В основном создается новый токен сеанса и cookie, данные сеанса копируются в хранилище сеансов, которые должны быть связаны с новым токеном, и если вы передадите true в качестве единственного аргумента функции, старый файл данных сеанса на диске будет удален.
Что вы храните в сессии, чтобы указать, был ли пользователь зарегистрирован, зависит от вас. Я часто просто хранить простое логическое значение, указывающее, если они вошли в систему, а также другие ценности холдинговая имена пользователей, имена и т.д. Затем проверить, если кто-то вошел в это так же просто, как это:
<?php
if ($_SESSION['logged_in']){
//User logged in
} else {
//User not logged in
}
?>
НТН.