Использование isset() для проверки того, вошел ли пользователь на веб-сайт.

Является ли использование isset() хорошим способом проверить, вошел ли пользователь в систему, а затем использовать unset(), когда пользователь снова выходит из системы, чтобы уничтожить переменную.


person Fluffeh    schedule 12.09.2013    source источник


Ответы (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

При таком подходе вы также вполне можете хранить дополнительную информацию, например, о пользователе, который щелкает ссылку, но эта страница требует проверки подлинности перед отображением информации. Пользователь, конечно, перенаправляется на страницу входа, но в фоновом режиме мы сохраняем другую переменную сеанса, которая ждет, пока пользователь успешно войдет в систему, а затем запускает событие, которое перенаправит пользователя обратно на страницу, которую он изначально хотел увидеть. . Это интуитивно понятно для пользователя, а также обеспечивает дружественный интерфейс. Ничто не раздражает меня больше, чем переход на сайт, вход в систему и перенаправление на главную страницу.

person Fluffeh    schedule 12.09.2013
comment
Я только что написал ответ о том, как реализовать простой сценарий входа в php, который использует как isset(), так и unset(). Я думаю, что они отлично подходят для простых систем/проверок, но я согласен с тем, что вы предложили. Можно улучшить удобство использования, просто сохраняя состояния действий пользователя в сеансе. - person mathielo; 12.09.2013