我正在为一个具有管理员面板的电子商务项目设置一个 Web 应用程序。如何强制并自动重定向到login.php而不是index.php?
例如,如果我确实遵循此路径http://localhost/project/admin(这将加载index.php)。
但是,当我尝试通过http://localhost/project/admin/login.phplogin.php手动打开时,登录过程成功运行并打开会话
文件夹结构:
在 Windows 10 上使用 XAMPP Panel v3.2
我已经尝试过以下方法:
登录.php
<?php
session_start();
include '../include/connection.php';
if (isset($_POST['submit'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$query = "select * from admin where admin_email = '$email' AND admin_password = '$password'";
$result = mysqli_query($conn,$query);
$adminSet = mysqli_fetch_assoc($result);
if ($adminSet['admin_id']) {
$_SESSION['admin_id'] = $adminSet['admin_id'];
header("location:index.php");
}
else {
$error = "You are not authenticated.";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
admin-header.php // 包含在index.php 中
<?php
session_start();
if (!isset($_SESSION['admin_id'])) {
header("location:login.php");
}
?>
Run Code Online (Sandbox Code Playgroud)
索引.php
<?php include '../include/admin-header.php'?>
Run Code Online (Sandbox Code Playgroud)
在您的管理目录中,创建一个.htaccess包含以下内容的文件:
DirectoryIndex login.php
Run Code Online (Sandbox Code Playgroud)
在您的管理目录中,创建一个.htaccess包含以下内容的文件:
RewriteEngine On
RewriteRule index.php login.php [L]
Run Code Online (Sandbox Code Playgroud)
我测试了选项 2,如果您请求/admin或/admin/或,它工作正常,在这 3 种情况下/admin/index.php您将被重定向到login.php
让你index.php像这样:
<?php
header("Location: login.php");
exit;
Run Code Online (Sandbox Code Playgroud)
我不喜欢使用选项 3 来保存额外的 HTTP 请求。
也检查这个问题。
| 归档时间: |
|
| 查看次数: |
1584 次 |
| 最近记录: |