2013-06-13 1 views
0

В Drupal Я зарегистрирован как пользователь. Если я использую мой супер крутой Друпал локон функции:Как получить URL-адрес с текущей сессией?

function formtocart_graburl($url) { 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$output = curl_exec($ch); 
return $output; 
} 

, чтобы захватить любой URL, он возвращает содержание, как будто я не вошли в систему Как я могу заставить CURL думать, что я вошел в систему как пользователь. вызов этой функции?

UPDATE

Примет следующий:

  1. Я вошел в системе http://mydmomain.com/drupal
  2. я могу получить доступ к http://mydmomain.com/drupal/admin как я административному пользователю
  3. Когда я вошел, я попытайтесь захватить URL-адрес: http://mydmomain.com/drupal/admin, но он возвращает контент, который говорит, что я не вошел в систему.
  4. Я хотел бы локон, чтобы думать, что я вошел в систему как пользователь я вошел в на Drupal

Я предполагаю, что решение имеет что-то делать с захватывая печенье или детали сессий и передавая ее локонов функции каким-то образом ?

+0

Pls разрабатывает дальнейшие действия, которые вы пытаетесь сделать. Почему вы используете завиток? –

+0

PLS распечатать данные, которые вы хотите получить с помощью curl, и что вы хотите с ним делать. Возможно, вы сможете использовать node_view и node_render. –

+0

, вероятно, вам нужно установить cookie auth для curl-запроса, потому что вы открываете другой php-сеанс как анонимный пользователь. Проверьте это http://stackoverflow.com/questions/9187985/php-curl-preserve-session .. нижнее решение выглядит как ответ –

ответ

0

Кажется, что ваш вопрос, по крайней мере, так, как он сформулирован, немного запутан в отношении того, как пользователи работают в отношении вызываемых функций и регистрируются на сайте Drupal; а именно разницу между пользователями уровня приложения и пользователями уровня сервера.

Вообще говоря, вы не запускаете код, например , как пользователь в Drupal. Хотя вы можете назначить разрешение на выполнение крючка Drupal, который содержит эту функцию, он не будет выполнять как этого пользователя, но сам пользователь Drupal работает как, например, www-data.

Чтение между строк здесь, если вы на самом деле просто хотите дать права контроля доступа по сравнению с этим кодом в системе ACL в Drupal, то вы должны прочитать о документации API для hook_permission():

https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_permission/7

Если вы явно не реализуете hook_permission, тогда да, это позволит функции запускаться анонимно, как вы, кажется, говорите.

+0

Я добавил дополнительную информацию. – coderama

Смежные вопросы