Php 确定是否在iframe中查看网页的最佳方法

Php 确定是否在iframe中查看网页的最佳方法,php,iframe,browser-detection,Php,Iframe,Browser Detection,有没有办法确定用户是在side和iframe中使用网页,还是使用PHP进行正常浏览?在使用iframe时,可以向请求添加一些GET参数 <iframe src="http://www.example.com/iframe?iframe=1"> 但是,虽然不是iframe请求,但不会有这个GET参数 您可以检查GET参数是否存在,并在会话中定义它 因此,iframe和普通窗口将有不同的会话 使用上面提到的@deceze的javascript代码(我在下面粘贴了它) 如果上面的代码

有没有办法确定用户是在side和iframe中使用网页,还是使用PHP进行正常浏览?

在使用iframe时,可以向请求添加一些GET参数

<iframe src="http://www.example.com/iframe?iframe=1">

但是,虽然不是iframe请求,但不会有这个GET参数

您可以检查GET参数是否存在,并在会话中定义它


因此,iframe和普通窗口将有不同的会话

使用上面提到的@deceze的javascript代码(我在下面粘贴了它)


如果上面的代码注意到页面显示在iframe中,那么通过ajax调用调用'IAmInIFRAME.php'(仅为示例)

解决方案是查看父窗口的位置和当前窗口的位置是否相同。如果相同,则正常加载页面;如果不同,则在iframe中加载页面

var isInIFrame = (window.location != window.parent.location) ? true : false;
这来自这个网站,它来自于这里的问题


注意:在一次测试中,我遇到了一个跨浏览器源代码错误,但这也只有在两个位置不同的情况下才会出现。

或者没有办法做到这一点吗?这可能会回答您的问题:这是一个javascript,我想知道我是否可以在PHPIf中实现。如果您确实阅读了这篇文章,您会发现一般来说很难做到这一点,甚至使用Javascript。使用PHP肯定是不可能的,因为PHP完全不知道客户端发生了什么;我有一个网站,当用户在iframe中查看和正常查看时,它必须以两种不同的方式查看。我知道我可以传递一个变量来实现这一点,但我只能在登录页上实现,除非我更改其他链接以获得该url变量。或者我也可以保留一个会话变量,但是如果用户突然在iframe之外查看页面,并且iframe需要将其切换为正常浏览。最好的方法是什么?谢谢这很有帮助,但我也需要让导航正常工作,所以基本上我需要跟踪用户来自这里的页面URL有一个名为iframeyour navigation will的get变量。在会话中,将有一个变量确定用户是来自iframe还是表单普通窗口
var isInIFrame = (window.location != window.parent.location) ? true : false;