2014-10-27 83 views
0

我想要做的是,當請求是從任何服務器進行我想獲取引用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://stackoverflow.com/questions/28395/通過post-values-with-curl)如何使用$ _POST發送數據 – arkyc 2014-10-27 05:38:05

回答

0

如果我沒有做任何愚蠢的錯誤,這應該這樣做:

委託方

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