执行图像为php,重定向到外部站点并返回为图像

时间:2015-12-11 22:25:15

标签: php image magento redirect nginx

我正在为Magento的欺诈检测服务进行图像重定向。功能的概念是用户点击结账页面,其中使用iframe发送捕获用户设备数据的请求。然后从第三方服务返回一个图像,以显示请求和重定向是否成功。这是我的问题:

我正在使用Nginx和php-fpm。我上面描述的iframe按设计工作。但是,非iframe支持有一个后备,其中使用gif而不是iframe来进行重定向。 gif实际上是一个php文件,我已经配置了Nginx和php-fpm来允许这个文件作为php执行。如果我直接访问gif,重定向工作正常,但当把它作为一个图像放入页面时,我没有得到预期的重定向。

这是logo.gif文件内容

<!DOCTYPE html>
<html>
    <head>
    <?php
        $m = $_GET['m'];
        $s = $_GET['s'];
        header("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        header("Cache-Control: no-cache");
        header('Content-Type: image/gif');
        header ("HTTP/1.1 302 Found");
        header ("Location: https://3rdpartysite.com/logo.htm?m=$m&s=$s");
        ?>
    </head>
</html>

1 个答案:

答案 0 :(得分:1)

您是否可以在结帐时包含iframe和img后备广告的方式?

值得注意的是,HTML 5已经删除了对iframe回退的支持,这可能就是为什么gif根本不被调用的原因:http://www.quackit.com/html_5/tags/html_iframe_tag.cfm

除此之外,为什么不让PHP呈现图像的直接URL而不是依赖于跳过logo.gif?或者使用带有<noscript>后备的JavaScript。

我不相信logo.gif是问题的根源,因为您已经证明它在直接访问时可以正常工作。问题的根源在于调用范围的实现。