Несколько часов назад я создал поток здесь относительно сеанса, который больше не существует при переходе на www. Это должно было зафиксировать это:
session_set_cookie_params(0, '/', '.'.$_SERVER['HTTP_HOST']);
Согласно нескольким примерам на php.net и других сайтах, это должно быть правильно. При переходе на сайт без использования www. а затем переключитесь на www., сеанс все еще работает (я все еще записываю его), но по какой-то очень странной причине невозможно создать сеанс (чтобы войти в систему) на веб-сайте при использовании www. Теперь.
Поэтому я могу войти, когда не использую www., Я могу переключиться на www. поэтому сеанс все еще существует, но я не могу войти в систему при использовании www.
Может ли кто-нибудь объяснить это поведение и как я могу это исправить? Кроме того, использует этот сервер variabele safe?
Спасибо!
Если вы запрашиваете какой-либо ресурс с сайта http://www.example.com , cookie будет установлен с .www.example.com
, поэтому он будет действителен только для http://www.example.com и всех его поддоменов, но не example.com .
Просто удалите ведущий www.
перед добавлением .
, например:
$domain = '.' . preg_replace('/^www\./', '', strtolower($_SERVER['HTTP_HOST']));
Вероятно, что $_SERVER['HTTP_HOST']
– это www.example.com
, а не example.com
. Если вы хотите протестировать его, вы всегда можете сделать hardcode, заменив $_SERVER
… фактическим '.example.com'
.