【问题标题】:Execute image as php, Redirect to external site and return as image以php执行图像,重定向到外部站点并作为图像返回
【发布时间】:2015-12-11 22:25:15
【问题描述】:

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

我正在使用 Nginx 和 php-fpm。我上面描述的 iframe 按设计工作。但是,对于非 iframe 支持有一个后备方案,其中使用 gif 而不是 iframe 来进行重定向。 gif 实际上是一个 php 文件,我已经配置了 Nginx 和 php-fpm 以允许这个文件作为 php.ini 执行。如果我直接访问 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>

【问题讨论】:

    标签: php image magento redirect nginx


    【解决方案1】:

    您能否将 iframe 和 img 后备包含在结帐中的方式包括在内?

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

    除此之外,为什么不让 PHP 呈现图像的直接 URL,而不是依赖于 logo.gif 的跳转呢?或者使用带有&lt;noscript&gt; 后备的javascript。

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

    【讨论】:

    • 我已经把 iframe 拿出来了所有在一起,只是有 只是为了尝试让 gif 正确呈现。我同意为什么不只是用 php 调用它,而是第 3 方软件要求它这样做。
    • 您的路径 src 是否以 / 开头?我的猜测是你得到了 404 的 gif,因为它将路径附加到现有的 URL。例如。 /checkout/cart/path/to/image/logo.gif
    • 很好地调用了 html5 后备。该网站是用 html5 构建的,因此我认为这不会像他们想要的那样工作。
    • 不抱歉,这只是为了举例,完全限定的 src 路径是“example.com/logo.gif”-stackoverflow 正在修剪我的 https,但它是一个安全请求
    • 您也可以粘贴控制台的内容吗?我的怀疑是根本没有访问该gif。此外,通过 http|https 引用资源时,您应该使用显式协议不可知选项:src="//example.com/logo.gif"
    猜你喜欢
    • 1970-01-01
    • 2019-03-17
    • 2011-12-13
    • 1970-01-01
    • 2017-07-20
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多