我有一个拥有管理员用户的CMS环境,我需要一种方法来重定向不是管理员或不拥有他们要编辑的文档的用户。看起来像这样,但是我的管理员无法以这种方式访问该页面,不确定原因:
$cannotpass=0;
if ($reportsusername != $usersusername) {
$cannotpass++;
}
if ($usersadmin != $admin) {
$cannotpass++;
}
if ($cannotpass >= 1) {
header("location:http://decibeldesignstudios.com/blackbirdsecurity/adminlanding");
}
您为什么需要柜台?
您可以简化如下:
if ($reportsusername != $usersusername && $usersadmin != $admin) {
header("location:http://decibeldesignstudios.com/blackbirdsecurity/adminlanding");
}
代替if/if
,执行if/else if
。问题在于,管理员用户将不会拥有该用户的报告,因此,当您是管理员时,第一个if
块将运行,并递增您的$cannotpass
标志,以确保发生重定向。
if ($reportsusername != $usersusername) {
$cannotpass++;
} else if($usersadmin != $admin) {
$cannotpass++;
}
但是,在这里我不会评论您的代码结构或最佳实践,因为其中大部分是基于意见的。如果您需要改进代码的建议,请考虑访问CodeReview。这是讨论最佳做法之类的更合适的地方。