我想使用 PHP 来检查页面是否在 iframe 中加载。最好但不是必需的,我希望在适用时拥有父母的网址。谢谢你。
问问题
9869 次
4 回答
11
Php 无法告知发出请求的上下文。除了传递给它并作为服务器变量可用的内容之外,它什么都不知道。您可以将自己的 get 参数添加到要在将页面放入 iframe 时使用的 url,否则您就不走运了。
于 2012-09-24T23:11:12.303 回答
5
JavaScript
为此需要;PHP绝对没有办法可靠地知道。在 JavaScript 中你可以使用
window.top === window.self;
于 2012-09-24T23:15:33.350 回答
0
我认为有可能通过 PHP 全局变量 $_SEVER["HTTP_REFERER"] 检测 iframe。在这个变量中是父窗口的 url。
于 2014-05-28T10:04:36.320 回答
0
是的,在 2021 年,可以URL
使用 PHP 的函数检查是否在 iframe 上嵌入get_header
,我在下面的函数中做了这个:
public function allowEmbed($url = 'https://stackoverflow.com/') {
try {
$headers = get_headers($url);
} catch (\Exception $e) {
$headers = [];
}
$blackList = [
'x-frame-options: sameorigin',
'x-frame-options: allow-from',
'x-frame-options: deny',
];
$headers = array_map('strtolower', $headers);
$check = array_intersect($blackList, $headers);
if(!$check) {
return ['status' => 1, 'message' => 'Passed'];
} else {
return ['status' => 0, 'message' => 'Fail'];
}
}
于 2021-08-11T09:18:25.620 回答