Является ли использование isset()
хорошим способом проверить, вошел ли пользователь в систему, а затем использовать unset()
, когда пользователь снова выходит из системы, чтобы уничтожить переменную.
Использование isset() для проверки того, вошел ли пользователь на веб-сайт.
Ответы (1)
Единственный тип переменной, которая будет зависать во время обновления страницы, — это переменная $_SESSION
. Теперь, хотя вы, безусловно, можете unset()
эту и следующую страницу не увидеть (следовательно, ваш код будет работать), на самом деле может быть лучше поддерживать переменную с набором значений.
Это даст больше свободы и гибкости. Например, если вы просто используете переменную сеанса как логическое значение (либо оно есть, либо его нет), у вас есть только варианты включения/выключения.
С другой стороны, если вы инициализируете переменную на первой странице, а затем изменяете данные в ней по мере необходимости, у вас гораздо больше гибкости в том, что делает ваш код, например:
$_SESSION['LoggedIn']='fresh';
// user has just opened the page and not logged in
$_SESSION['LoggedIn']='login';
// We have presented the user the login page at least once.
$_SESSION['LoggedIn']='validated';
// User has successfully logged in
При таком подходе вы также вполне можете хранить дополнительную информацию, например, о пользователе, который щелкает ссылку, но эта страница требует проверки подлинности перед отображением информации. Пользователь, конечно, перенаправляется на страницу входа, но в фоновом режиме мы сохраняем другую переменную сеанса, которая ждет, пока пользователь успешно войдет в систему, а затем запускает событие, которое перенаправит пользователя обратно на страницу, которую он изначально хотел увидеть. . Это интуитивно понятно для пользователя, а также обеспечивает дружественный интерфейс. Ничто не раздражает меня больше, чем переход на сайт, вход в систему и перенаправление на главную страницу.
isset()
, так и unset()
. Я думаю, что они отлично подходят для простых систем/проверок, но я согласен с тем, что вы предложили. Можно улучшить удобство использования, просто сохраняя состояния действий пользователя в сеансе.
- person mathielo; 12.09.2013