使用PHP的$ _COOKIE为cURL创建cookie.txt

时间:2010-05-10 12:36:58

标签: php drupal curl mediawiki

我在同一个域下的服务器上运行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] => 52cdb19a7b4a43e5a2f86939e4f54941

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

我认为cookie文件是一个由以下字段组成的制表符分隔文件:

  • 域 - Cookie适用的域
  • tailmatch - 是/否允许子域名访问
  • cookie path - 将cookie限制为的路径(默认/,表示全部)
  • secure - true / false是否仅通过https传输cookie
  • 到期 - 一个unix时间戳或零到永不过期
  • name - cookie变量的名称
  • 价值 - 价值!

我猜文件中的多行会对应多个Cookie,但我不确定

所以你的cookie可能是

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

等等

答案 1 :(得分:0)

实际上我找到了一种用file_get_contents代替cURL的方法。

这就是问题的解决方法:

  

$ opts = array('http'=> array('header'=>'Cookie:'。$ _SERVER ['HTTP_COOKIE']。“\ r \ n”));

     

$ context = stream_context_create($ opts);

     

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

答案 2 :(得分:0)

要创建cookie,请使用以下函数     的setcookie(名称,值,过期,路径,域)