我正在做一个库存管理网站,目前我唯一的问题是页面限制,因此普通用户无法访问敏感的管理数据。
我做了这个测试代码:
<?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页面中,因此我只得到员工,没有$perm即使$perm和$test都被回显出来。如何将会话变量正确分配给变量$perm?
整体思路一定是这样的
用户来登录 然后,您必须使用
session_start();
然后$_SESSION["perm_level"]
必须为此设置值。如果它在数据库中,您可以关联用户名以找出pem_level
$_SESSION["perm_level"] = 'Value we get from DB';
只有在有价值之后$_SESSION["perm_level"]
你才能做你在问题中提到的ifelse陈述。
您可以查看带有会话的简单登录示例,以了解其工作原理。
https://www.w3tweaks.com/php/simple-php-login-and-logout-script-using-php-session-and-database-using-mysql.html
我想我解决了。会话在标头中启动.php因此标头.php需要包含在 perm 检查器中。