页面应仅在窗口中打开

A page should be opened only in a window

本文关键字:窗口      更新时间:2023-09-26

我在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 属性?如果没有,那么您可以在加载窗口时检查它,并在未设置此值时退出

您可以通过 $_GET 将密钥传递给弹出窗口。如果密钥无效,您将在离开页面的地方执行重定向。这意味着直接访问该页面的用户不会知道密钥。

请记住在标头重定向后放置一个退出,否则脚本可能会继续处理!