Использование PHP $ _COOKIE для создания cookie.txt для cURL - PullRequest
1 голос
/ 10 мая 2010

Я использую Drupal и Mediawiki на моем сервере в одном домене. Они связаны друг с другом с помощью расширений / модулей. Это означает, что если я войду в Mediawiki, он также автоматически войдет в Drupal.

Mediawiki имеет некоторые расширения, которые фильтруют информацию, отображаемую на странице.

То, что я хочу сделать, это показать эту фильтрованную информацию из Mediawiki на моей странице Drupal. Я пытаюсь получить данные с помощью PHP cURL, но не могу заставить его использовать информацию для входа в систему.

Как я могу преобразовать PHP $ _COOKIE в формат cURL cookie.txt? Я полагаю, что после этого я смогу получить данные из Mediawiki с соответствующими правами доступа.

Вот что выводит print_r ($ _ COOKIE):

[wiki_session] => gg05lhd6pcfs5g6iokhoo0gue7

[wikiUserName] => WikiSysop

[wikiLoggedOut] => 20100510110913

[wikiUserID] => 1

[wikiToken] => 52cdb19a7b4a43e5a2f86939e4f54941

Спасибо за любую помощь!

Ответы [ 3 ]

1 голос
/ 10 мая 2010

Я считаю, что файл cookie - это файл с разделителями табуляции, состоящий из следующих полей:

  • domain - домен, к которому применяется cookie *
  • tailmatch - true / false лиразрешить субдоменам доступ к
  • пути cookie - путь для ограничения использования cookie (по умолчанию /, что означает все)
  • secure - true / false, передавать ли только cookie через https
  • expires - метка времени Unix или ноль, для которого никогда не истечет
  • name - имя переменной cookie
  • value - value!

Я думаю, несколько строк вфайл будет соответствовать нескольким файлам cookie, но я не уверен,

Таким образом, ваш файл cookie может быть

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

и т. д.

0 голосов
/ 13 августа 2010

Для создания куки используется следующая функция SetCookie (имя, значение, истекает, путь, домен)

0 голосов
/ 10 мая 2010

На самом деле я нашел способ сделать это с помощью 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);

...