Когда начинать сеанс?

#php #session

#php #сеанс

Вопрос:

У меня есть система, которая требует, чтобы пользователь вошел в систему (или зарегистрировался) для учетной записи, прежде чем они смогут получить доступ к «панели управления» своего участника.

Мой вопрос … в какой момент я session_start() ? На странице входа и странице регистрации? или после успешной аутентификации пользователя?

Спасибо.

Комментарии:

1. Обратите внимание, что создать собственную систему аутентификации очень, очень сложно. Если у вас нет большого опыта или вы не изучали предмет некоторое время, скорее всего, у вас будет несколько уязвимостей.

2. Обратите внимание, что session_start() будет создавать новый идентификатор сеанса при каждом вызове, если в браузере пользователя отключены файлы cookie, что делает управление сеансом сложным и уязвимым, если вы хотите поддерживать этих пользователей.

Ответ №1:

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

Ответ №2:

Как сказал Хельге Хельвиг,

вам нужно добавить session_start() в начало каждой страницы. Однако, чтобы упростить это, вы можете создать документ PHP, в котором вы храните весь жизненно важный код, подобный этому, и вызвать его; скажем init.php .

Затем вы можете include 'init.php' в верхней части каждой страницы, что немного очистит код.

Ответ №3:

Запустите сеанс на странице (страницах), которые должны получить доступ к данным сеанса. Как часть успешного входа в систему, вы также должны вызвать session_regenerate_id , чтобы предотвратить фиксацию сеанса.

Ответ №4:

вы можете начать сеанс после аутентификации пользователя. после этого вы можете получить доступ к пользовательской информации в S_SESSION и получить доступ к этой информации из любого места.

Ответ №5:

Вы должны начать сеанс после проверки информации пользователя, а затем вы можете установить uid пользователя в переменную сеанса. что может быть полезно впоследствии при загрузке личной информации пользователя, такой как профиль, настройки и т. Д.

на странице регистрации я думаю, вам не нужно начинать сеанс.

С уважением

Ответ №6:

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