【发布时间】:2026-02-23 02:20:03
【问题描述】:
我正在创建一些页面(包括登录页面),这些页面只能由系统管理员访问。
在验证用户凭据后的 login.php 中。我像这样设置了一个会话变量:
mysql_connect("localhost", $values['uname'], $values['password']) or
die(mysql_error());
echo "Connected to MySQL<br />";
mysql_select_db("somedb") or die (mysql_error());
session_start();
$_SESSION['level'] = 'admin';
header('Location: /admin/index.php');
然后在 index.php 页面中我正在执行以下操作:
<?php
if($_SESSION['level'] !== 'admin'){
header("location:../admin/login.php");
}
?>
但它似乎不起作用。每次我被重定向到 login.php(即使通过 login.php 成功登录后)。
这种方法有什么问题吗?我该如何处理?
基本上在 login.php 以外的页面上,我需要一种方法来确保用户已登录...
【问题讨论】:
-
我认为这个解决方案不干净。因为其他页面是真正加载并执行的,并且身份验证是硬编码的。是否有任何其他解决方案可以真正“拒绝访问”特殊页面?
标签: php