Отображение сеансов для пользователей - PullRequest
0 голосов
/ 26 июня 2009

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

Я получаю значение сеанса, но как узнать, для какого пользователя сеанс, и перенаправить его на эту страницу?

1 Ответ

2 голосов
/ 26 июня 2009

Вы не хотите создавать (новый) сеанс, когда пользователь входит в систему. Вы создаете / возобновляете сеанс на каждой странице.

Вот несколько примеров, разбитых на предметы первой необходимости.

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 и теперь может получить доступ к странице.
...