我正在创建一个时事通讯系统,可以在打开电子邮件时跟踪所有类型的信息。
我开始使用的图像看起来像
<p><img src="http://xxx.com/newsletterInfo.php?newsletter=12&userid=234" width="314" height="20" alt="Cancel Newsletter Subscription"></p>
然后在newsletterInfo.php文件中,我回应了图像的网址。
我认为这不是这样做的方式吗?
有些人可以指出我的问题所在。
由于
更新
发送电子邮件:
$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@here.com>' . "\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';
}
正如你所看到的那样,电子邮件使用mail()函数发送新闻通讯,然后我在图片中放置了一个php文件的url,在这个文件中要求变量,如果设置了它,那么回显图像url然后将数据输入到数据库中,所有这一切都100%工作,因为数据库正在更新。
问题在于图像被破坏了。
如果您右键单击并转到newsletterInfo.php,则会显示网址。
我认为这根本不是这样做的方式。
答案 0 :(得分:1)
src
属性应指向图像。您的src
指向包含网址的(动态)文本文件,而不是实际图片。 newsletterInfo.php
应输出图片,而不是其网址。
可能的解决方案:
简单方法:在newsletterInfo.php
内进行重定向,如下所示:
header('Location: url_to_the_image.jpg');
(将文件名替换为您当前正在回复的内容并删除该回音)
困难之处:将图像作为文件打开,发送正确的标题,然后回显图像。 (不是一个好主意)