curl发送引用URL

问题描述:

我想要做的是,当请求是从任何服务器进行我想获取引用URL所以我可以检查这个URL是否被允许访问我的文件或不,我有一些插件并在管理端检查更新,他们将检查连接我的网站的版本。所以,这些插件是在客户端网站上注册的。curl发送引用URL

这是我的卷发代码发送引荐人,但我想秘密发送引荐人,所以没有人可以轻松地更改我的代码。

public function checkUpdate($task , $product) { 

$parameters = array(
       'task' => $task, 
       'product' => $product, 
       'domain' => $_SERVER['HTTP_HOST'] 
      ); 


$curl = curl_init(); 
$parameters_str = ''; 

$url = "http://example.com"; 

foreach ($parameters as $key => $value) { 
    $parameters_str .= "$key=$value&"; 
} 

$url .= "?$parameters_str"; 

curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_REFERER, $_SERVER['HTTP_HOST']); 

$result = curl_exec($curl); 
curl_close($curl); 

return $result; 
} 

我希望你能理解我。或者如果你有更好的解决方案来完成这项工作,比如检查我的客户的许可证,那么这将非常棒! 如果您认为这个问题不好或不能在评论中解释清楚,请让我知道。

在此先感谢。

+0

你是什么意思,但我想秘密发送referrer,所以没有人可以轻易地更改我的代码。你想发送一些身份证明/密码与要求?比你为什么要使用referer呢?无论你从服务器发送的是你的服务器还是远程服务器。 '只需通过普通的加密就可以完成这项工作,比如检查我的客户的许可证,而这些工作并不重要。 – Cheery 2014-10-27 05:33:47

+0

@Cheery忽略这一行,你能帮我把秘密地发送给客户的域名吗?而已。顺便说一句,我想秘密发送我的客户域名,所以没有人可以很容易地看到这个许可证检查代码是如何工作的,因为我想检查客户端的域名。 (: – M3Dev 2014-10-27 05:36:24

+0

为什么你不能使用$ _POST发送数据的任何原因?那么你不需要隐藏查询字符串中的引用id。请参阅[这里](http://*.com/questions/28395/通过post-values-with-curl)如何使用$ _POST发送数据 – arkyc 2014-10-27 05:38:05

如果我没有做任何愚蠢的错误,这应该这样做:

委托方

public function checkUpdate($task , $product) { 

$referral id = 'abcd12345'; 

//you already had an array of parameters. I just added a referral id parameter. You can then pass 
//this array as $_POST. 
$parameters = array(
      'task' => $task, 
      'product' => $product, 
      'domain' => $_SERVER['HTTP_HOST'], 
      'ref_id' => $referral id 
     ); 




$url = "http://example.com"; 

//unsure of any other curl parameters you need. 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $parameters); 


$result = curl_exec($curl); 
curl_close($curl); 

return $result; 
} 

在服务器端做处理。我假设它在example.com的索引​​文件中?

if (isset($_POST['ref_id'])) 
{ 
    //do whatever you want with the referral id. 
} 

if (isset($_POST['domain'])) 
{ 
    //do whatever you want with domain. 
} 
+0

感谢您的代码,但没有引荐ID,只有域将被用于验证。 – M3Dev 2014-10-27 06:14:44