Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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
Javascript 如果推荐人与目标匹配,则重定向_Javascript_Php - Fatal编程技术网

Javascript 如果推荐人与目标匹配,则重定向

Javascript 如果推荐人与目标匹配,则重定向,javascript,php,Javascript,Php,我想重定向到一个不同的页面,如果推荐匹配加载的网站。我之所以要这样做,是因为我在多个网站上同时运行一个php旋转器脚本。但是如果我有一个站点A在站点A B C D上做广告,我希望站点A只显示推荐人是否匹配站点B C或D,或者不显示推荐人是否匹配站点A。这是为了防止在其自身上显示相同的网站 该脚本是加载在iframe中的php脚本。它没有介绍人斗篷或类似的东西。我可以在rotator脚本中包含任何javascript或php 如有任何想法或建议,将不胜感激。谢谢大家! 抱歉,这有点长,但我想确保回

我想重定向到一个不同的页面,如果推荐匹配加载的网站。我之所以要这样做,是因为我在多个网站上同时运行一个php旋转器脚本。但是如果我有一个站点A在站点A B C D上做广告,我希望站点A只显示推荐人是否匹配站点B C或D,或者不显示推荐人是否匹配站点A。这是为了防止在其自身上显示相同的网站

该脚本是加载在iframe中的php脚本。它没有介绍人斗篷或类似的东西。我可以在rotator脚本中包含任何javascript或php

如有任何想法或建议,将不胜感激。谢谢大家!

抱歉,这有点长,但我想确保回答正确

让我们明确一点,并使用一致的术语,以确保我们在这里处于同一页: 表示捕获当前页面的请求并将其指向其他页面

例如:
在地址栏中键入“”将执行重定向到“”

有多种重定向,我们这里不讨论它们

指示链接到所请求页面的URI(从HTTP标头中提取)

例如:
您已进入页面“”
单击指向“”的链接
在本例中,您的推荐人是“”

重定向可能会修改referer的值,具体取决于重定向的类型

为了实现您的愿望:不在iframe中显示您当前所在页面的广告,您实际上并不关心这两个方面。您不需要任何重定向,也不需要关心链接到当前页面的用户


考虑你的页面是如何工作的: 有一个在页面加载时执行的javascript,它将iframe插入到文档中。
该iframe依次在服务器上加载PHP文件,该服务器显示广告

因此,您有一个类似以下内容的HTML页面:
index.html


服务器索引
它调用的JavaScript看起来像这样:
/js/adrotator.js

var holder = document.getElementById("top_banner_ad");
var iframe = document.createElement("iframe");
iframe.src = "http://example.com/inc/adrotators.php";
holder.appendChild(iframe);
最后,它调用一个类似以下内容的PHP脚本:
/inc/adrotators.php


我不确定在这个场景中您可以访问哪些内容,但我假设您可以访问所有这些内容:承载脚本的页面(index.html)、创建iframe(/js/adrotator.js)的javascript以及由iframe(/inc/adrotator.php)调用的php脚本

您至少有两种解决方案: 您可以让/js/adrotator.js从index.html找到它并告诉/inc/adrotator.php它是谁,或者让/inc/adrotator.php找到它的父框架是谁

  • 因此,iframe知道其父帧(尽管它们实际上只能通信)
    如果您的iframe加载的页面位于同一个域中,一种解决方案是让iframe中的javascript(在PHP生成的HTML中)检查其父级,如下所示:

    parent.document.location.href 
    
    然后,如果目标域与父域匹配,则请求新的ad

  • (首选)如果可以修改在页面中创建iframe的javascript,则可以让javascript检查url,并将其作为url参数添加到它调用的iframe的src属性中。
    例如:

    var host_url = window.location.href;  
    var iframe = document.createElement("iframe");  
    iframe.src = "http://example.com/ad_rotator.php?host="+ host_url;
    document.body.appendChild(iframe);
    
    然后,您的PHP脚本将不会提供目标与$\u GET[“host”]匹配的广告

    
    
这里所有的代码都是未经测试的伪代码,您肯定需要修改它,它只是一个初学者


如果你不能修改加载广告的PHP,也不能修改注入iframe的脚本,那么你就太麻烦了。

试图了解更多。。。因此,您有一个旋转广告点,显示站点a、B、C或D的4个广告中的1个。旋转广告脚本放置在站点a、B、C和D上,您希望确保您当前所在的站点没有显示广告,是吗?或者,你是说如果我通过站点B到达站点A,那么就不会显示站点B的广告吗?第一种情况是这样的,是的,你得到了它,而不是在中,我想确保没有显示你当前所在站点的广告。简化示例:站点A和B上广告的rotator脚本:在rotator脚本中,我们有几个站点,包括站点A,因此我不想在站点A上显示站点AI强烈建议您查看我链接的同一来源地策略信息,我假设你会受到它的影响,因为你在调用一个来自4个不同域的脚本。