如何使用当前会话获取URL?

时间:2013-06-13 19:24:46

标签: drupal curl

在Drupal中我以用户身份登录。如果我使用我超酷的drupal卷曲功能:

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;
}

获取任何网址,它会返回内容,就像我没有登录一样。如何强制CURL认为我是以用户调用此函数的方式登录的?

更新

假设如下:

  1. 我已登录http://mydmomain.com/drupal
  2. 我可以访问http://mydmomain.com/drupal/admin,因为我是管理员用户
  3. 当我登录时,我尝试抓取网址:http://mydmomain.com/drupal/admin,但会返回显示我未登录的内容。
  4. 我想让我认为我以登录Drupal的用户身份登录
  5. 我认为解决方案与获取cookie或会话详细信息以及以某种方式将其传递给curl函数有关?

1 个答案:

答案 0 :(得分:0)

似乎你的问题,至少就其措辞而言,对用户如何处理被调用函数以及登录Drupal网站感到有些困惑;也就是说,应用程序级用户和服务器级用户之间的区别。

一般来说,您不会在Drupal中将之类的代码作为用户运行。虽然您可以分配执行包含该函数的Drupal挂钩的权限,但它不会执行 as 该用户,但用户Drupal本身正在运行,例如www-data。

在这里读取行,如果您真的只想将该代码的访问控制权授予Drupal的ACL系统,那么您应该阅读hook_permission()的API文档:

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

如果你没有明确地实现hook_permission,那么是的,这将允许函数“匿名”运行,就像你似乎在说的那样。