Вы не хотите создавать (новый) сеанс, когда пользователь входит в систему. Вы создаете / возобновляете сеанс на каждой странице.
Вот несколько примеров, разбитых на предметы первой необходимости.
login.php
<?php
session_start();
if ($_POST['user'] == 'john' && $_POST['pwd'] == 'password') {
$_SESSION['loggedIn'] = true;
$_SESSION['firstname'] = 'John';
}
?>
admin.php
<?php
session_start();
if (!isset($_SESSION['loggedIn']) || !$_SESSION['loggedIn']) {
header('location: login.php');
exit();
}
echo 'Hello ' . $_SESSION['firstname'] . '!';
?>
- Пользователь посещает admin.php
session_start()
создает новый сеанс. Все данные ($ _SESSION) хранятся на сервере. Новый файл cookie с идентификатором сеанса сохраняется на стороне клиента.
- Пользователь перенаправляется на login.php, если для ключа
$_SESSION['loggedIn']
не установлено значение true
session_start()
восстанавливает сеанс с помощью куки, отправленного браузером
- Пользователь отправляет форму и аутентифицируется. Внутри массива
$_SESSION
мы отмечаем это.
- Пользователь возвращается к admin.php и теперь может получить доступ к странице.