Я работаю локально через две «домены». У меня есть enterprise.local и application.local виртуальные хосты на моей машине, и мне нужно установить cookie домена для «local» или «.local». У меня возникают проблемы с настройкой файла cookie. В application.local, у меня есть это:Проблема Настройка Cookie с PHP
setcookie('iPlanetDirectoryPro', trim($token_id), '0', '/', '.local');
header('Location: /adcom-sso');
Я также попытался это:
header('Set-Cookie: iPlanetDirectoryPro=' . trim($token_id) . '; path=/');
header('Location: /adcom-sso');
setcookie()
Использование, не печенье не ступала. Используя заголовок Set-Cookie
, cookie - комплект. Я удалил перенаправление с обоих, и результат никогда не меняется. Он работает для Set-Cookie
, но не для setcookie()
. Это было бы хорошо, так как я на самом деле не имею предпочтения, какое решение я использую, но в Set-Cookie
растворе, как только я добавить домен это все ломается:
header('Set-Cookie: iPlanetDirectoryPro=' . trim($token_id) . '; path=/; domain=local');
Как только я добавляю в значение домена, я получаю ошибку заголовка:
Header may not contain more than a single header, new line detected.
Я попробовал значение домена в качестве «местного» и «Местных». Поведение не меняется.
Мне редко приходится явно обращаться к файлам cookie, поэтому я надеюсь, что у меня просто отсутствует что-то очевидное, но я, конечно, не вижу его. Любое понимание было бы высоко оценено.
UPDATE: Я думаю, что я сузил это немного дальше. Кажется, что оба способа будут работать , пока я не включаю значение домена. Может ли быть проблема с использованием «local» или «.local» в качестве конкретного домена для cookie?
Я действительно пробовал все это. Первоначально я вообще не обрезался. Я также попробовал setrawcookie(), хотя я не включил его здесь для простоты. В решении Set-Cookie я также попробовал вручную urlencode(), используя $ token_id. Я просто попробовал идею preg_replace() и ничего не изменил. Благодарю. –
«Заголовок может не содержать ...» будет * не * срабатывать, если у вас нет перевода строки. Я посмотрел исходный код PHP ('sapi_header_op()'). У вас определенно есть проблема с возвратом строки с этой ошибкой. – Inshallah
То, что я в конечном счете отслеживал, соответствовало вашим изменениям. Как только я попробовал «.local.com», все прошло гладко. В этом случае проблема была из-за моей среды dev, где я сохраняю свои «домены» простыми. Это не должно быть проблемой для стека в производственных средах. Спасибо за вашу помощь. –