【发布时间】:2013-02-27 04:03:15
【问题描述】:
我刚刚遇到了一个问题。我目前正在为学校开展一个项目,我希望在侧边栏中拥有所有活跃用户(类似于聊天,但不是)。
首先我想到了这个(伪代码):
<?php
...
class user {
//Some instance vars.
public function __construct(){
//Write username in a textfile/database
}
public function logout {
//Delete username from textfile/database
}
}
...
?>
问题是:
1) 用户对象存储在$_SESSION[] 数组中。所以我不能使用魔术方法__destruct()。这就是我制作logout() 方法的原因。 (问题解决了^^)
2) 如果我们假设用户使用相同的 ID 在 2 台设备(例如笔记本电脑、智能手机)上登录并且他退出了一台设备上的会话,那么另一台设备也将被删除。
3) 用户可能不想按注销,而只是关闭浏览器窗口。我怎么知道他登出/退出会话。
我知道,PHP 不是这种任务的最佳编程语言,但我真的很想用 PHP 来做这个项目。如果这个问题已经被问过,我真的很抱歉,但我仔细搜索了所有相关问题,所有这些问题(或多或少)都与我的不同。
提前致谢:)
【问题讨论】:
-
不要重新发明轮子,您可以随时查看框架中的一些专业代码。 Symfony 中的会话位于 HTTPFoundation 组件中。 symfony.com/doc/master/components/http_foundation/sessions.html您可以根据需要使用特定组件。