我在我的网页访问方面有一个问题。在登录中,它已经可以区分用户是否是管理员。管理员与普通用户有不同的页面。
我的问题是,如果用户更改地址栏中的地址,例如:
home.php -> ordinary user
home_admin.php -> administrator 如果用户更改地址栏中的地址,普通用户也可以访问home_admin.php。我所有的页面都在使用会话。
任何建议我如何解决我的问题。
提亚
发布于 2014-08-20 06:38:17
您必须在会话中保存当前的访问权限状态。在此之后,您可以创建一个条件,如果他没有足够的权限检索页面的内容,请将他重定向到另一个站点。
就像这个例子
<?php
if($_SESSION['user_role'] !== 'administrator') {
// redirect him
}
?>发布于 2014-08-20 06:37:27
你不能阻止人们索取东西。在给他们所要求的东西之前,你必须对他们进行认证和授权。
管理PHP程序必须:
…如果其中任何一个不是真,它应该返回一个错误消息,而不是管理内容。
发布于 2014-08-20 06:45:02
如果您正在使用会话,您可以通过以下流程来实现这一点:
$_SESSION['admin'] = FALSE (如果用户是管理员)来实现这一点(或者TRUE )。您不必像我一样使用精确的语法。但是类似这样的东西,可以识别用户是管理员还是普通用户。$_SESSION['admin'] = TRUE,允许他们使用home_admin.php。可以通过在home_admin.php文件中添加以下代码块来做到这一点:
session_start(); if($_SESSION['admin'] == FALSE){ header('Location: home.php'); exit(); } // Rest of your page.PS:在呈现任何HTML或调用任何PHP代码之前,请确保在页面顶部添加第2点的代码。
希望它能回答你的问题。
https://stackoverflow.com/questions/25398175
复制相似问题