我有一个关于PHP的问题.
我已经创建了一个登录/注册页面,用户可以选择正确登录并离开进行注册.我已经完成了左右两边的包括login.php和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;
}
Run Code Online (Sandbox Code Playgroud)
您也可以这样做register.php,但是,从这些页面重定向您的用户并不是最佳解决方案; 相反,你应该将login.php和register.php你的根目录之外.您不希望用户有权访问的任何文件都应该在webroot之外.
假设你的webroot被称为'public_html'.然后创建一个像这样的目录结构:
public_html:
- both.php
includes:
- login.php
- register.php
Run Code Online (Sandbox Code Playgroud)
然后both.php,要包含其他两个文件,请执行以下操作:
require __DIR__ . '/../includes/login.php';
require __DIR__ . '/../includes/register.php';
Run Code Online (Sandbox Code Playgroud)
由于这些文件位于webroot之外,因此无法通过在地址栏中键入路径来查看它们,但both.php仍可以包含它们.