面向对象的php会话管理

时间:2012-01-06 14:32:50

标签: php oop

我有一个使用登录/注销的webapp,所以我有会话管理。到目前为止,每个页面都以

开头
session_start();  
if(!isset($_SESSION['username'])) {header("Location: index.php");} else { rest of the page's functionality}

我现在正在创建一个类(User.php);这将由另一个.php页面访问。我是否需要实现上述安全性,如果是,如何实现?我应该把课程放在webroot之上吗? 谢谢

1 个答案:

答案 0 :(得分:1)

首先,虽然我假设你已经想到了这一点;只是为了检查在会话中是否设置了用户名并不是特别保存。如果要检查用户是否已登录,则应存在一些其他测试。

而不是回到你的问题;即使没有登录用户,页面也可能访问User类(例如,当您想在博客文章中显示此特定用户的公开评论时)。所以不,不需要你的测试。此外,您还可以检查用户是否已登录到User类(或者更好的是,您将围绕它构建Authentication类),因此您可以执行以下操作:

if(Authentication::is_logged_in($_SESSION['username']) === true) {
    echo 'yeeehaaaa! You\'re logged in bro!';
} else {
    echo 'what are you doing here?! Get lost! (or log in)';
}