2012-12-05 109 views
-1

我有一個問題,試圖讓我的會員跟蹤像素標記轉換使用cURL請求。每次請求我都會收到200的回覆。因此,我不知道爲什麼它沒有進行轉換。我在網上做了一些研究,但在谷歌上找不到太多關於這方面的信息。cURL會員跟蹤像素

function pixel($row) { 

$i = 0; 
$pixelArray = array("https://path.tosite.com/pixel/","https://path.tosite.com/pixel/2"); 
$count = sizeof($pixelArray); 

    while ($i < $count) { 

     $line = $pixelArray[$i]; 
     //echo "<br/> line = ".$line; 
     // replace [afid], [sid], [c1], [c2], [c3], or [t] with the corresponding value in $_SESSION 
     $line = preg_replace_callback(
      '/\[(afid|sid|c1|c2|c3|t)\]/', 
      function($matches) { return $_SESSION[$matches[1]]; }, 
      $line 
     ); 
     //echo "<br/>".$i.": ".$line; 
     firePixels($line, $row); 
     $i++; 
    } 
    //echo "Done"; 
} 
function firePixels($url, $row) 
{ 

    $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE); 
    curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE); 
    curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 
    //curl_setopt($ch, CURLOPT_POST, TRUE); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'); 

    $head = curl_exec($ch); 
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    $error = curl_error($ch); 
    curl_close($ch); 

    if(!$head) 
    { 

     logPixel($url, $row, $httpCode); 
     //die('Pixel Execution Failed: '.$error." | ".$url); 
     return FALSE; 
    } 


    logPixel($url, $row, $httpCode); 

    if($httpCode === 200) 
    { 
     return TRUE; 
    } 
    else 
    { 
     return FALSE; 
    } 


} 

回答

0

原因很可能是以下中的一個是這樣的:

  1. 你捲曲會議結束了缺少一些餅乾,你的聯盟期待,而被忽略。

  2. 您的分支機構檢測到來自服務器IP的異常請求數量,並將其阻止。

  3. 您的子公司在您的請求中發現了一些其他違規行爲,並且阻止了它們。

聯屬網絡跟蹤像素旨在由客戶的瀏覽器請求,而不是由您的服務器請求。除非您已與您的分支機構做出其他安排,否則您不應嘗試此操作。

+0

你說的對#1。我必須確保附屬公司設置爲回傳像素,然後爲其提供適當的參數。太感謝了 –