#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()
будет вызываться на каждой защищенной странице, доступ к которой осуществляется после аутентификации. Вы будете помещать значения в сеанс как на страницах входа, так и регистрации по мере проверки подлинности пользователя. Но как только пользователь будет подтвержден, теперь вы должны поместить эту функцию на все страницы, на которых требуется аутентификация пользователя.