是否像$ ENV {'HTTP_REFERER'}一样简单?或者还有其他我需要做的事情吗?
实施例: 我的网站:sample.php
使用iFrame调用网站:somesite.com
加载时我想要sample.php,以便能够使用“somesite.com”作为变量输入。
答案 0 :(得分:5)
内联框架和普通页面之间没有区别。最初使用src
加载内联框架将发送HTTP引用。
答案 1 :(得分:3)
首先,您的网页不得依赖对Referer存在也不正确:它是由浏览器发送的信息,可以是:
有关更多信息,请参阅:
这些帖子都“同意”我^^
现在,您可以最终使用它来添加一些功能;但是你不能依赖来让你的网站工作; - )
答案 2 :(得分:1)
要获得真正可靠的访问父URL的方法,您可以在嵌入父URL时将其添加到包含父URL的iframe src。您可以使用Javascript自动添加此内容以及嵌入。
以下是将iframe嵌入<body>
标记末尾的示例:
var iframe = document.createElement('iframe');
iframe.src = '/sample.php?parent=' + window.location;
document.body.appendChild(iframe);
然后,您可以使用以下命令从PHP可靠地访问父URL:
$parent_url = $_GET['parent'];
答案 3 :(得分:0)
正如Pascal MARTIN所提到的,你绝对不应该相信Referer值。
扩展Gumbo的答案:由于Referer作为HTTP请求中的标头传输,因此在<iframe>
中加载的脚本中检索它与为任何其他脚本检索它完全相同。
当浏览器请求src
中<iframe>
属性指定的页面时,它将提交类似于任何其他资源的HTTP请求,并且将包含Referer
标头值。< / p>
Referer
标头的值将包含托管<iframe>
的网页的网址。因此,如果您有一个名为 page-with-iframe.php 的PHP脚本并且它包含<iframe src="sample.php" />
,那么 sample.php 的HTTP请求可能类似于:< / p>
GET /sample.php HTTP/1.1
Host: somesite.com
...
Referer: http://somesite.com/page-with-iframe.php
在 sample.php 中,您可以使用$ENV{'HTTP_REFERER'}
来检索该值,然后您可以从中解析出热门名称 somesite.com 。