2010-05-10 78 views
1

我在同一個域下的服務器上運行Drupal和Mediawiki。它們通過擴展/模塊相互連接。這意味着如果我登錄到Mediawiki,它也會自動登錄到Drupal。

Mediawiki有一些擴展程序可以過濾頁面上顯示的信息。

我想要做的是在我的Drupal頁面上顯示來自Mediawiki的過濾信息。我試圖用PHP cURL獲取數據,但我無法強制它使用登錄信息。

如何將PHP的$ _COOKIE轉換爲cURL cookie.txt格式?我想在那之後,我可以通過正確的權限從Mediawiki獲取數據。

這是的print_r($ _ COOKIE)輸出:

[wiki_session] => gg05lhd6pcfs5g6iokhoo0gue7

[wikiUserName] => WikiSysop

[wikiLoggedOut] => 20100510110913

[wikiUserID] => 1

[wikiToken] => 52cdb19a7b4a43e5a2f86939e4f5494 1

感謝您的幫助!

回答

0

其實我找到了一種使用file_get_contents而不是cURL的方法。

這是問題是如何解決的:

$選擇採用=陣列( 'HTTP'=>陣列( '標題'=> '的Cookie:'。$ _SERVER [ 'HTTP_COOKIE']。爲 「\ r \ n」));

$ context = stream_context_create($ opts);

$ contents = file_get_contents('http://foo/bar',false,$ context);

1

我相信cookie文件是由以下字段的選項卡分隔的文件:

  • 域 - 餅乾適用於
  • tailmatch域 - 真/假是否允許子域訪問
  • Cookie路徑 - 可以限制cookie的路徑(默認/,這意味着所有)
  • 安全 - 真/假是否僅發送的cookie通過HTTPS
  • 到期 - Unix時間戳或零到永不過期
  • 名稱 - Cookie變量的名稱
  • value - value!

我猜的文件將對應於多個Cookie多行,但我不知道

那麼你的cookie可能是

www.domain.com TRUE/FALSE 12395013 wiki_session gg05lhd6pcfs5g6iokhoo0gue7 
www.domain.com TRUE/FALSE 12395013 wikiUserName WikiSysop 

0

要創建一個cookie用於以下功能 的setcookie(名稱,值,過期,路徑,域)

+1

格式你的代碼的可讀性。此外,發佈信息或進一步解釋您的答案。 – JSuar 2012-12-15 03:13:35