2

我有一个关于php的问题。

我制作了一个登录/注册页面,用户可以在其中选择右登录和左注册。我已经完成了从地图根部包含login.phpand的左右操作。register.php

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

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

4

1 回答 1

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仍然可以包含它们。

于 2013-08-26T23:21:07.210 回答