PHP 在非 Drupal 脚本中无法访问在 Drupal 中设置的 cookie
PHP cookie set within Drupal inaccessible in non-Drupal script
我正在 Pantheon 上托管的 Drupal 应用程序中设置一个 cookie(假设 URL 是域。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 cookies,所以设置cookies一般没有问题。
我尝试改用 setcookie()
,但这没有用。
在处理 pantheon 并设置您自己的 cookies/session 变量时,您需要根据此处的文档在 cookie 名称前加上 "SESS":
https://pantheon.io/docs/articles/sites/varnish/caching-advancedtopics/
所以代替:
setcookie('hi', 'howareyou?');
您需要使用:
setcookie('SESShi', 'howareyou?');
我正在 Pantheon 上托管的 Drupal 应用程序中设置一个 cookie(假设 URL 是域。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 cookies,所以设置cookies一般没有问题。
我尝试改用 setcookie()
,但这没有用。
在处理 pantheon 并设置您自己的 cookies/session 变量时,您需要根据此处的文档在 cookie 名称前加上 "SESS":
https://pantheon.io/docs/articles/sites/varnish/caching-advancedtopics/
所以代替:
setcookie('hi', 'howareyou?');
您需要使用:
setcookie('SESShi', 'howareyou?');