检查用户是否在页面上?

Ket*_*ets 2 php

我有一个关于PHP的问题.

我已经创建了一个登录/注册页面,用户可以选择正确登录并离开进行注册.我已经完成了左右两边的包括login.phpregister.php我的地图的根.

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

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

Pau*_*aul 5

你想做什么是可能的,你可以$_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.phpregister.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仍可以包含它们.