我有一个关于php的问题。
我制作了一个登录/注册页面,用户可以在其中选择右登录和左注册。我已经完成了从地图根部包含login.php
and的左右操作。register.php
问题是当用户键入login.php
或register.php
在网址后面时,他们会进入没有样式等的实际页面。
如何检查用户是否在both.php
页面上,如果他们尝试访问login.php
或register.php
手动输入,自动将他们重定向到both.php
?
我有一个关于php的问题。
我制作了一个登录/注册页面,用户可以在其中选择右登录和左注册。我已经完成了从地图根部包含login.php
and的左右操作。register.php
问题是当用户键入login.php
或register.php
在网址后面时,他们会进入没有样式等的实际页面。
如何检查用户是否在both.php
页面上,如果他们尝试访问login.php
或register.php
手动输入,自动将他们重定向到both.php
?
您想做的事情是可能的,您可以$_SERVER['REQUEST_URI']
在顶部检查login.php
,如下所示:
<?php
if(strpos($_SERVER['REQUEST_URI'], '/login.php') !== false){
header('Location: /both.php');
exit;
}
您也会这样做register.php
,但是,从这些页面重定向您的用户并不是最好的解决方案;相反,您应该移动login.php
到register.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
仍然可以包含它们。