#php #cookies #subdomain
#php #файлы cookie #поддомен
Вопрос:
Есть веб-сайт www.example.com
Все файлы cookie устанавливаются на www
поддомен.
Теперь есть новый поддомен, и я хочу, чтобы файлы cookie отображались для всех поддоменов.
Цель состоит в том, чтобы переписать файлы www.example.com
cookie для всех старых посетителей .example.com
или написать новые для .example.com
, если установлено для www.
Для этого я хочу получить домен существующих файлов cookie.
Возможно ли это? Есть ли функция php для этой цели?
Комментарии:
1. Вы можете найти
$cookie->setDomain($domain)
полезные, как в этой автономной библиотеке . Хотя вы не можете получить доступ кdomain
свойству файлов cookie, которые уже были отправлены (и установлены на клиенте), вы можете просто установить новые. Это будет работать нормально.
Ответ №1:
Я не думаю, что домен доступен при чтении файлов cookie, это ограничено браузером. Решением было бы удалить старый файл cookie и заменить его на новый домен.
Например.
$value = $_COOKIE['TestCookie'];
setcookie("TestCookie", "", time() - 3600, "www.example.com");
setcookie("TestCookie", $value, time (60 * 60 * 24 * 30), ".example.com");
Комментарии:
1. У меня была эта идея, но таким образом, даже после изменения всех файлов cookie процесс будет повторяться вечно. Я делаю это на стороне сервера. И еще одно: Google Chrome знает домен cookie (в элементе проверки)
2. Вы можете добавить еще один файл cookie, чтобы сообщить, что вы уже выполнили преобразование.
Ответ №2:
Если я вас правильно понял, вы хотите изменить домен файлов cookie, существующих в настоящее время на клиентах?
Это невозможно (*).
При получении файла cookie на стороне сервера, возможно ли вам увидеть, был ли он установлен для домена www, имея в виду, что файл cookie, переданный клиенту, не содержит информации о домене?
(*) Это может быть возможно с помощью JavaScript на стороне клиента.
Ответ №3:
Вы можете использовать PHP-функцию session_get_cookie_params() . Я надеюсь, что это сделает работу.
domain:"www.domain_name.com"
httponly:false
lifetime:1525181833
path:"/"
secure:false
Комментарии:
1. будьте осторожны: php.net/manual/ru/function.session-get-cookie-params.php#119445 . Я создал файл cookie с HttpOnly true, и эта функция показала, что это false
2. session_get_cookie_param() получает только настройки, определенные в php.ini для файла cookie сеанса (используется с session_start(), $ _SESSION и т. Д.), А не информацию о фактическом файле cookie