Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 - Fatal编程技术网

Php 每用户和每封邮件的电子邮件像素跟踪

Php 每用户和每封邮件的电子邮件像素跟踪,php,Php,我想用pixle tracking跟踪打开的电子邮件,每个用户在我的数据库中都有一个id,我需要知道到底是谁打开了邮件以及是哪封邮件,而不仅仅是获得一般的打开率 我的问题是,我是否需要为每条消息和每个用户使用不同名称的pixle图像?我认为您可以这样做: <img src="www.yourdomain.com/track.php?userid=xxx&msgid=yyy"> <?php // Here goes some more PHP ($DB initial

我想用pixle tracking跟踪打开的电子邮件,每个用户在我的数据库中都有一个id,我需要知道到底是谁打开了邮件以及是哪封邮件,而不仅仅是获得一般的打开率


我的问题是,我是否需要为每条消息和每个用户使用不同名称的pixle图像?

我认为您可以这样做:

 <img src="www.yourdomain.com/track.php?userid=xxx&msgid=yyy">
<?php
// Here goes some more PHP ($DB initialization, etc)

if (!empty($_GET['img']) && !empty($_GET['msg']))
  $STH = $DB->prepare('INSERT INTO seen (`message`) VALUES (?)');
  $STH->execute(array($_GET['msg']));
header('Location: /images/white.jpg');
?>


然后只需使用$\u GET参数跟踪用户/msg,并重定向到一个静态图像,该图像对于所有邮件和用户都是相同的。

所有电子邮件都可以有相同的图像,但路径不同,这使得它们都可以解析为同一个

因此,图像可以是
example.com/bla/index.php?msg=1&img=white.jpg
,然后执行如下操作:

 <img src="www.yourdomain.com/track.php?userid=xxx&msgid=yyy">
<?php
// Here goes some more PHP ($DB initialization, etc)

if (!empty($_GET['img']) && !empty($_GET['msg']))
  $STH = $DB->prepare('INSERT INTO seen (`message`) VALUES (?)');
  $STH->execute(array($_GET['msg']));
header('Location: /images/white.jpg');
?>

我最近在ajax中使用了一些非常类似的方法,尽管使用了.htaccess和路径,如
example.com/faces/89y3gf34gho.jpg
(在内部转换为
example.com/faces/index.php?face=89y3gf34gho.jpg


注意,许多用户会考虑一个小的跟踪白色图像攻击,所以,至少你制作一个专门的网站,比如<代码> iTrrkUn.com /Trace/index。php。MSG=36和IMG=白色。JPG< /代码>,隐藏这不是一个图像和正在做的事情是可取的。出于这些目的,

example.com/bla/5475.jpg
优于
example.com/bla/index.php?msg=1&img=white.jpg
。这可以通过。

@Bojangles来实现。在我看到答案后,我会说答案是否定的!您不需要有不同的图像,但对于同一图像,您确实需要有不同的路径。所以实际上没有这么简短的答案。你可以,但用户可以决定不显示你电子邮件中的图像,这样他们就不会被下载,你也不会收到通知。正如我所读到的,有些电子邮件提供商会阻止所有1px图像。这要看情况而定。5x5像素的白色图像非常糟糕。为什么不在所有邮件的末尾加一行,在换行后加上“徽标”和电子邮件公司的名称?examplemail.com徽标带给您的信息应该更加合法