【问题标题】:Trackingpixel should load external website through a referring page - but it doesn't workTrackingpixel 应该通过引用页面加载外部网站 - 但它不起作用
【发布时间】:2012-06-02 10:27:31
【问题描述】:

我遇到了跟​​踪像素的问题。 trackingpixel 包含在主页上,如下所示:

<img src="tracking.gif" alt="" />

tracking.gif 包含以下内容:

<?php
header("Location: http://www.mydomain.com/referrer.php?url=http%3A%2F%2Fwww.external.com")
?>

referrer.php 是这样的:

<?php
$url = $_GET['url'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Referring...</title>
        <link rel="stylesheet" type="text/css" href="css.css" />
        <meta http-equiv="refresh" content="0.3; URL=<?php echo $url ?>" />
        <script type="text/javascript">
                    window.setTimeout(function() {
                        location.href = '<?php echo $url ?>';
                    }, 300);
        </script>
    </head>
    <body>
        Some text.
    </body>
</html>

很遗憾,无法重定向到外部网站。只有referrer.php 被加载。这是为什么? 如果我将 tracking.gif 中的 referrer-url 替换为外部网站的 url,则该代码有效。

更多信息: 如果我直接调用referrer.php,它就可以工作。 我通过 htaccess 设置服务器,它应该将 tracking.gif 作为 php 文件处理。

提前感谢您的帮助!

【问题讨论】:

  • 您是否设置了服务器以将文件作为 php-script 处理?如果直接通过浏览器调用脚本会发生什么?
  • 是的,我做到了!如果我直接调用referrer.php 脚本,它就可以工作。

标签: php javascript tracking forwarding referrer


【解决方案1】:

您的问题的答案在于浏览器如何处理不同类型的资产,以及允许实际执行哪些资产。

你的第一段代码:

<img src="tracking.gif" alt="" />

告诉浏览器从某个位置加载和显示图像。为此,它将对图像发出 HTTP 请求。这就是为什么你的第二段代码:

<?php header("Location: ....") ?>

确实有效。浏览器发送一个对 tracking.gif 的 HTTP 请求,响应将浏览器定向到另一个位置。这一切都很好(尽管您还应该将响应状态设置为 302 以确保完整性)并且浏览器会转到您的新 URL 以搜索图像数据。

这就是我们遇到的问题。当我们跟随重定向到我们的新页面时,我们没有得到图像——我们得到了一些 HTML。浏览器无法将其解释为图像。这似乎是无稽之谈。所以它被丢弃了。浏览器当然不会检查或执行嵌入在无意义图像数据中的代码。它只是将数据交给负责绘制图像的管道,然后管道会说“我不明白”并继续下一个任务。

这就是为什么当您直接在浏览器中加载 referrer.php 页面时它实际上可以工作 - 因为浏览器需要 HTML 和 Javascript。当浏览器接收到相同的数据时,期望一个图像,结果是失败。

您似乎显示在加载图像时试图使浏览器转到不同的 URL,这是安全模型不允许的 - 图像文件无法将行为注入到页面中包括他们。你能更详细地解开你真正想要实现的目标吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2013-09-07
    相关资源
    最近更新 更多