Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 GeoIP和HTML电子邮件_Php_Email_Html Email - Fatal编程技术网

Php GeoIP和HTML电子邮件

Php GeoIP和HTML电子邮件,php,email,html-email,Php,Email,Html Email,我编写了一封HTML电子邮件,效果很好,投递时几乎没有反弹 客户端希望根据用户的位置显示或隐藏电子邮件的某些部分。他们没有关于订户位置或任何列表分段的数据,因此我制作了一个PHP脚本,从img标记的src加载,并通过用于地理定位的DBIPAPI返回基于用户IP的图像 if ($info_array[1] == "US"){ if ($info_array[2] == ("New York" || "Connecticut" || "New Jersey")){ // lo

我编写了一封HTML电子邮件,效果很好,投递时几乎没有反弹

客户端希望根据用户的位置显示或隐藏电子邮件的某些部分。他们没有关于订户位置或任何列表分段的数据,因此我制作了一个PHP脚本,从
img
标记的
src
加载,并通过用于地理定位的DBIPAPI返回基于用户IP的图像

if ($info_array[1] == "US"){
    if ($info_array[2] == ("New York" || "Connecticut" || "New Jersey")){
        // log how many see the ny/nj/ct content into count.txt. protections are in place for multiple concurrent accesses
        $fp = fopen('count.txt', 'c+');
        flock($fp, LOCK_EX);
        $count = (int)fread($fp, filesize('count.txt'));
        ftruncate($fp, 0);
        fseek($fp, 0);
        fwrite($fp, $count + 1);
        flock($fp, LOCK_UN);
        fclose($fp);
        // spit out the image
        header('Content-Type: image/jpeg');
        $image = readfile('box5.jpg');
        return $image;
    }
    else{
        header('Content-Type: image/gif');
        $image = readfile('spacer.gif');
        return $image;
    }
}
else{
    header('Content-Type: image/gif');
    $image = readfile('spacer.gif');
    return $image;
}
我在本地测试了这一点,看起来一切都很好,但今天在服务器上打开count.txt时,它显示8000/9000 opens激活了脚本中的NY/CT/NJ部分,这很疯狂,因为该品牌在北美/南美都很受欢迎

我的问题是:这是我的代码中的错误造成的吗?或者请求是否来自邮件代理服务器?如果是的话,这些地区的大多数邮件代理是吗


如果有帮助的话,我从ExactTarget发送了这封信。

我认为这是你的错,因为:

if ($info_array[2] == ("New York" || "Connecticut" || "New Jersey"))
执行顺序如下:

(“纽约”| |“康涅狄格”| |“新泽西”)
真的

下一步-将
$info\u数组[2]
true


任何
$info_数组[2]
除了空值或零之外都是
true

值得注意的是,脚本中没有任何内容可以阻止同一用户将计数增加两次。true,谢谢。我本应该为这一点增加保护,但我不明白为什么有人会多次打开它,以至于它会以任何有意义的方式突出统计数据。谢谢你的回答,只是确保我的回答正确:那么你是说我应该省略括号?我可以通过其他州/国家的一些代理进行测试,但他们没有触发计数/图像…很抱歉,我现在就跟你说。谢谢你回答这么简单的问题!