PHP cookie, установленный в Drupal, недоступен в не-Drupal скрипте
Я устанавливаю файл cookie в приложении Drupal, которое размещено в Pantheon (скажем, URL-адрес domain.com/step/1), непосредственно перед перенаправлением на внешний URL-адрес, например так:
$expires = time()+(60*60*24);
setrawcookie('tourPath', '/step/1', $expires, '/');
header('Location: http://www.someexternalurl.com?redirect='.$callback_url);
Внешний URL-адрес обрабатывает запрос способом, который на самом деле не имеет отношения к этому вопросу, но затем перенаправляет на $callback_url
, Скажем так domain.com/callback
, Несмотря на это, он находится в том же домене, но это простой PHP-скрипт (не в Drupal).
Проблема, с которой я столкнулся, заключается в том, что когда происходит перенаправление на скрипт обратного вызова, я вижу в своем браузере, что tourPath
cookie установлен, но его нет в массиве $_COOKIE.
Я вижу различные файлы cookie Drupal в $_COOKIE, так что в целом нет никаких проблем с настройкой файлов cookie.
Я пытался с помощью setcookie()
вместо этого, но это не помогло.
1 ответ
При работе с пантеоном и настройке собственных файлов cookie / сеансов вам необходимо добавить имя файла cookie с помощью "SESS" в соответствии с их документацией:
https://pantheon.io/docs/articles/sites/varnish/caching-advancedtopics/
Так что вместо:
setcookie('hi', 'howareyou?');
Вам нужно будет использовать:
setcookie('SESShi', 'howareyou?');