【发布时间】:2011-11-02 12:31:29
【问题描述】:
我正在尝试在 php.ini 中创建一个登录系统。我有 3 个文件。 index.php、login.class.php(定义登录类)、securePage.php。
登录类有getUserName()、addUser()等不同的函数
index.php 创建一个新的 $login 对象,有一个登录表单并创建一个新的帐户表单。
当您在 index.php 页面上创建帐户时, $login->addUser($username, $password, $first_name, $last_name, $email);函数执行创建一个新帐户。
在您登录并点击提交后,脚本会检查您的用户名/密码/等并将您重定向到securePage.php。
在我从 login.class.php 重定向到 securePage.php 后,我不确定检查用户是否正确登录以及是否将所有用户信息放在手边的最佳方法是什么。
现在我的securePage.php 创建了一个新的登录对象 $login = 新登录;并通过在 Login 类中调用 checkAccess 来检查用户是否有权访问该页面。
//检查用户是否可以访问该页面,否则重定向到登录页面
if($login->checkAccess()) {
//blah blah blah
}
这就是登录类中 checkAccess 函数的样子
public function checkAccess() {
// check the session access
if(isset($_SESSION['username']) ) {
//
return true;
}
}
我觉得这是一个糟糕的实现,因为 a) 我创建了一个全新的登录对象并丢失了我的数据 b)我只通过检查会话的用户名是否设置来检查会话是否安全,这可能是伪造的。
就仍然拥有所有用户数据并检查用户是否登录而言,实现securePage.php的最佳方法是什么?
【问题讨论】:
-
服务器端的会话cookie