检查用户是否在页面上?

时间:2013-08-26 23:15:42

标签: php

我对php有疑问。

我已经创建了登录/注册页面,用户可以选择正确登录并离开进行注册。我已经完成了向左和向右的操作,包含了地图根目录中的login.phpregister.php

问题是当用户在网址后面输入login.phpregister.php时,他们会进入没有风格等的实际页面。

如何检查用户是否在both.php页面上,如果他们尝试通过手动输入login.phpregister.php来访问,则会自动将其重定向到both.php }?

1 个答案:

答案 0 :(得分:5)

您可以做什么,可以在$_SERVER['REQUEST_URI']的顶部查看login.php,如下所示:

<?php
if(strpos($_SERVER['REQUEST_URI'], '/login.php') !== false){
    header('Location: /both.php');
    exit;
}

您会对register.php 执行相同操作,从这些页面重定向您的用户并非最佳解决方案;相反,您应该将login.phpregister.php移到您的webroot之外。您不希望用户有权访问的任何文件都应该在webroot之外。

假设你的webroot被称为'public_html'。然后创建一个像这样的目录结构:

public_html:
 - both.php
includes:
 - login.php
 - register.php

然后在both.php中,要包含其他两个文件,请执行以下操作:

require __DIR__ . '/../includes/login.php';
require __DIR__ . '/../includes/register.php';

由于这些文件位于webroot之外,因此无法通过在地址栏中输入路径来查看这些文件,但both.php仍然可以包含它们。