Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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 菲律宾元';t基于iframe内的引用者父URL重定向_Php_Iframe - Fatal编程技术网

Php 菲律宾元';t基于iframe内的引用者父URL重定向

Php 菲律宾元';t基于iframe内的引用者父URL重定向,php,iframe,Php,Iframe,我有一个带有以下代码的iframe的页面。基本上,我希望它像一个门户网站。根据他们从哪个页面访问此内容,他们将看到不同的内容。当我尝试使用echo获取referer时,它成功地获取了父URL,但无法正确重定向。相反,它将变成默认值。我想知道这是不是不可能的事 $referrer = $_SERVER['HTTP_REFERER']; switch($referrer) { case "https://domain1.org": header("Location: https:

我有一个带有以下代码的iframe的页面。基本上,我希望它像一个门户网站。根据他们从哪个页面访问此内容,他们将看到不同的内容。当我尝试使用echo获取referer时,它成功地获取了父URL,但无法正确重定向。相反,它将变成默认值。我想知道这是不是不可能的事

$referrer = $_SERVER['HTTP_REFERER'];

switch($referrer) {
   case "https://domain1.org":
      header("Location: https://example.org/one");
      break;
   case "http://domain2.org");
      header("Location: https://example.org/two");
      break;
   case "https://domain3.org":
      header("Location: https://example.org/three");
      break;
   default:
      header("Location: https://example.org");
}
编辑1:如果我将其更改为iframe URL,而不是父项,它将只重定向到案例标题。否则,它将重定向到默认标头


编辑2:我在这里设置了一个测试环境。问题仍然存在。

向iframe URL添加一个变量,以便它检测给定的变量而不是父URL。这不是我的想法,但在我的情况下,这是一个很好的替代方案

<iframe src="https://example.org/redirect.php?variable=redirect1"></iframe>

$var = $_GET['variable'];

switch($var) {
   case "redirect1":
      header("Location: https://example.org/one");
      break;
   case "redirect2";
      header("Location: https://example.org/two");
      break;
   case "redirect3":
      header("Location: https://example.org/three");
      break;
   default:
      header("Location: https://example.org");
}

$var=$_GET['variable'];
交换机($var){
案例“1”:
标题(“位置:https://example.org/one");
打破
案例“2”;
标题(“位置:https://example.org/two");
打破
案例“3”:
标题(“位置:https://example.org/three");
打破
违约:
标题(“位置:https://example.org");
}

那么您没有收到任何错误(日志)?不清楚收割台是否正在点火。到底是什么不起作用?如果重定向失败,则可能是标头已发送类型问题。请详细说明一下。我很慢。@ficuscr:如果没有足够的信息,很抱歉。没有任何错误。原木很好。报头正在触发,但只有默认报头。重定向不会将父URL检测为referer,但echo会检测。referer字符串是否与您要测试的字符串完全匹配?也许您的
case
语句中的字符串只是其中的一部分。jeroen所说的,或者,您需要检测A页上的referer,并将该值作为用于到达B页的URL上的GET变量(1、2等)传递。现在还不清楚您是否正在B页上检查该值,但为时已晚。web开发的本质,在URL上传递它或在会话中把它收起来。@ficuscr:我很可能是,但我不知道它是什么。我也很想拿这个聊天,但我没有20个代表。