2013-01-13 26 views
0

我正在創建一個通訊系統,用於跟蹤打開電子郵件時所有類型的信息。使用php圖像跟蹤技巧在電子郵件中顯示圖像

我已經開始用它看起來像

<p><img src="http://xxx.com/newsletterInfo.php?newsletter=12&userid=234" width="314" height="20" alt="Cancel Newsletter Subscription"></p> 

然後在newsletterInfo.php文件我正在echo'ing的URL圖像的圖像。

我認爲這不是這樣做的方式嗎?

有人可以請指出我的問題在哪裏。

感謝

更新

電子郵件的發送:

  $name = stripslashes($fetchquery["name"]); 
      $email = stripslashes($fetchquery["email"]); 

      $content = $_POST["maincontent"]; 
      $subject = $_POST["subject"]; 
      $message = "<html><head><title>".$subject."</title></head><body>"; 
      $message .= str_replace('{name}', $name, $content); 
      $message .= '<p><img src="http://xxx.com/newsletterInfo.php?newsletter='.$id.'" width="314" height="20" alt="Cancel Newsletter Subscription"></p>'; 
      $message .= "</body></html>"; 

      $headers = 'MIME-Version: 1.0' . "\r\n"; 
      $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
      $headers .= 'From: Username <[email protected]>' . "\r\n"; 

      // Mail it 
      mail($email, $subject, $message, $headers); 

在信息頁面上,我已經做到了這一點:

if(isset($_GET["newsletter"])) { 

    $query = $pdo->prepare("UPDATE newsletter SET opened=`opened` +1 WHERE id=:id"); 
    $query->execute(array(':id' => $_GET["newsletter"])); 
    $query_num = $query->rowCount(); 

    if($query_num > 0){ 
     echo 'http://xxx.com/cancel.png'; 
    } 

正如你所看到的電子郵件使用ma發送電子報il()函數,然後在那裏圖像是我把PHP文件的URL,在這個文件要求的變量,如果它設置它然後回聲圖像URL,然後輸入數據到數據庫中,所有這些工程100%因爲數據庫正在更新。

問題是圖像壞了。

如果你點擊右鍵,進入newsletterInfo.php網址顯示。

我認爲這根本不是這樣做的方式。

+0

爲什麼這不是這樣做的?有什麼問題 ? – vodich

+0

@vodich對不起,我忘了實際上說圖像沒有顯示。我不明白你的意思是「爲什麼這不是這樣做?」謝謝 – Robert

+0

粘貼一些代碼,以便我們可以看到代碼中的錯誤 – vodich

回答

1

src屬性應指向圖像。您的src指向包含URL的(動態)文本文件,而不是實際圖像。 newsletterInfo.php應該輸出一個圖像,而不是它的URL。

可能的解決方案:

  1. 簡單的辦法:做一個重定向內newsletterInfo.php,就像這樣:

    header('Location: url_to_the_image.jpg'); 
    

    (與您目前正在重複着替換的文件名並刪除回聲)

  2. 困難的方法:打開圖像作爲文件,發送正確的標題,然後回顯圖像。 (不是一個好主意)

+0

的原因顯示 - 謝謝:) – Robert

相關問題