所以我正在构建一个身份验证系统,允许客户查看我们为他们创建的工作。每个客户只有一个帐户。我试图找出一种方法来检查每个页面上是否允许登录的人查看所述内容。
基本上文件结构是这样的:Client/Year/Project/,然后在项目文件夹中有特定类别的文件夹(flash、登录页面等)。在每个文件夹中都有一个 index.php 文件,用于处理显示目录或项目。我需要在每个索引页面上检查登录的用户是否有权查看该页面。
目前,我有几个会话变量:
$_Session['loggedin'] - 登录时设置为 true 的布尔值
$_Session['client'] - 这个值是在他们登录时从数据库中获取的。它只是一个客户全名的字符串(它也用于显示目的)。
到目前为止,在每个页面上,我都会检查 login 是否设置为 true,并且我在每个页面上都进行了硬编码:
if(!isset($_SESSION['loggedin']) || $_SESSION['client'] != 'Clientname'){
unset($_SESSION);
session_destroy();
header("Location: http://www.homepage.com");
}
不过,我对这个解决方案不是很满意,因为我正在努力使其尽可能自动化——新客户将继续添加,人们应该可以在不费吹灰之力的情况下添加客户(所有这些都有效在这一点上很好,除了这个)
我必须检查以确保客户端正确,否则可能会发生以下情况:客户端 A 登录并且登录会话设置为 true ......但是,如果他们导航到客户端 B 的文件夹结构并且它只检查以查看如果有人登录,他们将能够访问它。
有处理这样的事情的好习惯吗?我想实现一些可以在所有用户之间使用的东西,并且每次添加新客户端时都不需要有人进入代码并更改客户端名称字符串。
任何形式的逻辑帮助都会很棒!