2015-11-25 24 views
0

我在重定向到外部URL之前立即在Pantheon上託管的Drupal應用程序中設置cookie(讓我們只說URL爲domain.com/step/1)像這樣:在Drupal中設置PHP cookie在非Drupal腳本中無法訪問

$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中)。

我在這裏遇到的問題是,當重定向到回調腳本時,我可以在瀏覽器中看到設置了Cookie,但它不在$ _COOKIE數組中。

我可以在$ _COOKIE中看到各種Drupal cookie,所以在設置cookie時一般都沒有問題。

我試着用setcookie()代替,但沒有幫助。

+0

作爲一個副作用請注意,由於我無法控制外部服務,因此無法在回調網址中設置此「tourPath」變量:它們要求所有重定向網址都列入白名單,因此,將每一個單獨列入白名單/ step/1,/ step/2,/ step/3等... –

回答

1

當與萬神殿處理和設定自己的Cookie /會話瓦爾你需要用「SESS」預先設置cookie的名稱根據自己的文檔在這裏:

https://pantheon.io/docs/articles/sites/varnish/caching-advancedtopics/

所以不是:

setcookie('hi', 'howareyou?'); 

你需要使用:

setcookie('SESShi', 'howareyou?'); 
+0

你是我的英雄。我的文檔閱讀英雄。 –