#php #session #session-variables
#php #сессия #переменные сеанса
Вопрос:
Я долгое время программировал веб-сайт, но никогда не использовал session_name()
встроенную в PHP функцию для установки пользовательского имени сеанса вместо значения по умолчанию (PHPSESSID).
У меня была страница входа в систему, которая перенаправляет вас на другой файл после успешного входа в систему. В этом файле я в основном проверял isset($_SESSION)
, не был ли я настроен на перенаправление на страницу входа в систему. В противном случае, говорю я Hello $_SESSION["Username"]
.
Недавно я решил использовать session_name
и задать пользовательское имя. Однако теперь скрипт во втором файле (проверяющий, был ли $_SESSION
он установлен) всегда говорит, что он не установлен. Я просто изменил название сеанса.
Затем я поискал в Google и увидел, что мне нужно сделать еще раз sesssion_name()
и session_start()
во втором файле, чтобы получить доступ к имени пользователя.
TL; DR
Всегда ли мне нужно делать session_name()
и session_start()
для каждого файла, который я хочу получить, доступ к данным моего сеанса с пользовательским именем сеанса?
Я могу прояснить некоторые вещи, если это неясно; возможно, это будет нелегко понять.
Комментарии:
1. Вам всегда нужно делать
session_start()
это на каждой странице, которой требуется доступ к переменным сеансов, независимо от того, используете вы имя сеанса или нет.
Ответ №1:
Вам нужно будет либо запускать session_name()
каждый файл, которому требуется доступ к пользовательскому сеансу, сохранить логику в отдельном включаемом файле, который включается во все соответствующие файлы, либо изменить имя сеанса PHP по умолчанию с помощью session.name
значения конфигурации.
Без указания session_name()
в каждом конкретном случае PHP не будет знать, что вы хотите, чтобы он использовал другое имя, и вместо этого по умолчанию используется значение from session.name
.