Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 跟踪电子邮件会以真实图像打开_Php_Image_Email_Tracking - Fatal编程技术网

Php 跟踪电子邮件会以真实图像打开

Php 跟踪电子邮件会以真实图像打开,php,image,email,tracking,Php,Image,Email,Tracking,我正在考虑将电子邮件跟踪添加到我为小型客户企业构建的web服务中。我正计划做嵌入式图像解决方案(参考我服务器上的图像)-除非其他人有更好的方法-但是当我使用引用我服务器上PHP页面的图像标记时,它会加载“断开的图像”图标。如何使此图像有效? 以下是邮件PHP页面的代码: <?php $body = "<html>Hello there!". "<img src='http://mysite.com/track.php?name=bob' />".

我正在考虑将电子邮件跟踪添加到我为小型客户企业构建的web服务中。我正计划做嵌入式图像解决方案(参考我服务器上的图像)-除非其他人有更好的方法-但是当我使用引用我服务器上PHP页面的图像标记时,它会加载“断开的图像”图标。如何使此图像有效?

以下是邮件PHP页面的代码:

<?php
   $body = "<html>Hello there!".
    "<img src='http://mysite.com/track.php?name=bob' />".
    "</html>";

    $subject = "Tracking on ".date('Y-m-d H:i:s');

    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'From: webmaster@mysite.com' . "\r\n";

    mail('my_email@gmail.com',$subject,$body,$headers);
?>

这是追踪代码:

<?php
   include('database_connection.php');
   $query = "INSERT INTO tracking SET name='".$_GET['name']."', date=NOW()";
   mysql_query($query);

   // Tried this, but it doesn't work:
   echo "<img src='http://mysite.com/photos/image.jpg'>";
?>

简单的谷歌搜索就可以了

header('Content-Type: image/jpeg');
readfile('path');

你真的只需要运用你的直觉:你在图像标签中链接到什么?您可以链接到图像源。实际的图像文件。你在代码中做什么?用另一个图像源回显HTML代码。但是客户端浏览器需要的是图像,而不是更多的HTML代码。

如果要使用这样的PHP脚本,它需要返回图像数据,而不仅仅是HTML图像标记。最简单的方法是:

<?php
header("Content-Type: image/jpeg");
readfile("image.jpeg");

do_all_your_tracking_stuff();

我试过谷歌。。。你用的是什么短语?还有,这是怎么回事?“Php输出图像”。在您向用户发送任何数据之前,标题将被删除。readfile基本上会将文件输出到浏览器(同样,源链接应该是图像文件的,
。readfile会将文件内容“打印”到浏览器)。readfile放在哪里并不重要,但从技术上讲,您应该先发送数据,以便客户端可以加载它(如有可能,脚本标记最好放在正文后面),所有这些行是否都会放在
track.php
文件中@黄昏乌夫