我想编写一个只能由管理员访问的脚本。
这就是我想要的方式:
session_start();
if (!isset($_SESSION['user_id'])) { //not logged in
//redirect to homepage
header("Location: http://domain.com/index.php");
die();
}
if ($_SESSION['user_level'] != 1337) { //not admin
//redirect to homepage
header("Location: http://domain.com/index.php");
die();
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') { //form is submitted
//validate the submitted data
//submit the query
}
//form goes here
我的问题是:是否有更好的方法来验证这一点(例如,应该嵌套所有三个条件)还是这样?
干杯,
n1te
答案 0 :(得分:4)
如果人员权利不可能随时改变(即:你删除管理员权限),那么这应该足够了,尽管我已经建立了一个功能:
function IsAdmin() {
if( !isset($_SESSION['user_level'])){
return false;
}
return ($_SESSION['user_level'] == 1337);
}
对于这种情况,您将来会使用扩展权限检查。
答案 1 :(得分:1)
以下有点整洁......虽然您可能想在$ _SESSION ['user_id']上运行一些验证,以确保它是一个int或您期望的任何数据类型...
session_start();
if (!isset($_SESSION['user_id']) || $_SESSION['user_level'] != 1337) { //not logged in
//redirect to homepage
header("Location: http://domain.com/index.php");
exit(); // NOT DIE :P
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') { //form is submitted
//validate the submitted data
//submit the query
}
//form goes here
答案 2 :(得分:0)
我写道:
if (!isset($_SESSION['user_id']) || $_SESSION['user_level'] != 1337) {
//not logged in/not admin
//redirect to homepage
header("Location: http://domain.com/index.php");
die();
}