php 检索会话变量以限制对页面的访问
php retrieve session variable to restrict access to a page
我正在做一个库存管理网站,目前唯一的问题是页面限制,因此普通用户无法访问敏感的管理数据。
我做了这个测试代码:
<?php
$perm = $_SESSION["perm_level"];
if ($perm == 0) {
$test = "Employee";
} elseif ($perm == 1) {
$test = "Manager";
} elseif ($perm == 2) {
$test = "Teacher";
} else {
$test = "No value retrieved from session.";
}
?>
结果打印到 admin.php 页面,因此我只得到 Employee 而没有 $perm,即使 $perm 和 $test 都被回显了。如何将会话变量正确分配给变量 $perm?
我想我已经解决了。会话于 header.php 开始,因此 header.php 需要包含在烫发检查器中。
整体思路应该是这样的
用户来到并登录
然后您必须使用
开始会话
session_start();
然后 $_SESSION["perm_level"]
必须为此设置值。如果它在数据库中,您可以关联用户名以找出 pem_level
$_SESSION["perm_level"] = 'Value we get from DB';
只有在 $_SESSION["perm_level"]
中存在值后,您才能执行问题中提到的 if else 语句。
您可以查看带有会话的简单登录示例以了解其工作原理。
我正在做一个库存管理网站,目前唯一的问题是页面限制,因此普通用户无法访问敏感的管理数据。
我做了这个测试代码:
<?php
$perm = $_SESSION["perm_level"];
if ($perm == 0) {
$test = "Employee";
} elseif ($perm == 1) {
$test = "Manager";
} elseif ($perm == 2) {
$test = "Teacher";
} else {
$test = "No value retrieved from session.";
}
?>
结果打印到 admin.php 页面,因此我只得到 Employee 而没有 $perm,即使 $perm 和 $test 都被回显了。如何将会话变量正确分配给变量 $perm?
我想我已经解决了。会话于 header.php 开始,因此 header.php 需要包含在烫发检查器中。
整体思路应该是这样的
用户来到并登录 然后您必须使用
开始会话session_start();
然后 $_SESSION["perm_level"]
必须为此设置值。如果它在数据库中,您可以关联用户名以找出 pem_level
$_SESSION["perm_level"] = 'Value we get from DB';
只有在 $_SESSION["perm_level"]
中存在值后,您才能执行问题中提到的 if else 语句。
您可以查看带有会话的简单登录示例以了解其工作原理。