Php 页面只能在窗口中打开

Php 页面只能在窗口中打开,php,javascript,Php,Javascript,我有一个PHP小应用程序,当点击按钮(type='button'而不是type='submit')时,会打开一个新窗口,并将一个页面加载到该窗口中。使用Ajax在窗口的该页面上执行一些数据库插入操作 加载到窗口中的页面只能在窗口中打开。如果该页面的URL直接输入web浏览器的地址栏,则该页面必须受到保护并重定向到其他页面,它可能是应用程序的主页。我尝试使用window.opener.closed,但它不适合这个要求 在PHP中,我可以检查 if($_SERVER['REQUEST_METHOD'

我有一个PHP小应用程序,当点击按钮(
type='button'
而不是
type='submit'
)时,会打开一个新窗口,并将一个页面加载到该窗口中。使用Ajax在窗口的该页面上执行一些数据库插入操作

加载到窗口中的页面只能在窗口中打开。如果该页面的URL直接输入web浏览器的地址栏,则该页面必须受到保护并重定向到其他页面,它可能是应用程序的主页。我尝试使用
window.opener.closed
,但它不适合这个要求

在PHP中,我可以检查

if($_SERVER['REQUEST_METHOD'] == "GET")
{
    header("location:Home.php");
}
但这也会将窗口中的页面重定向到Home.php页面,因为我在该页面上的
GET
请求中使用Ajax

有没有办法确定页面是否只能加载到窗口中?在所有情况下,都必须防止加载


谢谢。

如果在常规浏览器地址栏中打开受保护的地址,您是否检查了是否设置了opener属性?如果没有,那么您可以在加载窗口时检查它,并在该值未设置时退出

您可以通过$\u GET将密钥传递到弹出窗口。如果密钥无效,您将从页面执行重定向。这意味着直接访问页面的用户将不知道密钥


记住在头重定向后也要放一个出口,否则脚本可能会继续处理

这根本无法在PHP端完成。。PHP无法知道是否有可用的
window.opener
。如果
window.opener
可用,您可以打开新窗口,然后用JS加载页面。。否则重定向,但不能在服务器端执行。不要这样做。无论谁会使用你的页面,他都不会喜欢。我认为这是一个可以接受的检查,因为在你自己的应用程序中,你可以决定地址栏在window中是否可编辑。openI使用jQuery函数做了这件事,比如
jQuery(document).ready(function(){if(window.opener==null){window.location=“index.php”});。可能在概念上是错误的,但它是有效的。非常感谢你。