我已经使用的笨系统的一段时间了-但是 它已 它的 短缺憾.我感谢有什么教我的,但是现在我需要一个图书馆为一个新的非笨项目和所以我在寻找的想法在其图书馆都有正确的事情以及哪些不。我可能会需要采取片从几个图书馆得到我需要的一切。

我刚才看了看一个的 Kohana PHP届会议 库而且我喜欢它如何返回的地PHP的方式使用$_SESSION超全局而不是强迫改变$this->届会议对数据访问。

无论如何,我想知道,如果还有其他的良好的会议图书馆在那里我可能会被搞乱。有很多必须处理在一届会议除了只污物功能。

  • 支持非基于cookie届会议通过(即Facebook或闪光的上传)
  • "闪光的数据",只有持续下页载,然后是自动删除。
  • Works with$_SESSION or$this->的会议,以便编程人员没有改变现有的代码。
  • 支持设置一个新的session id(即session_id('新id'))的情况下,你想要改变id中的方式通过该网页。
  • 保存了所有的数据,在结束页的请求,而不是每时间的数据添加或删除(可以节省额外的数据库查询).
  • 支持使用文件,饼干,或数据库,用于储存。(或缓存将是不错的)
  • 试图拒绝访问的情况下一届会议的劫持。(IP,简,或 指纹)

我刚刚花了一些时间去过的逻辑笨和Kohana届会议图书馆和我想出了下列关于如何每个开始和结束会议的网页。

/**************
** Kohana Sessions
**************/
If not native file storage {
    session_set_save_handler to the storage type (DB, cache, cookie...)
}

set the session_name() so php knows what cookie value to check

start session

/****** Saving ******/

session_write_close() which calls the given handler


/**************
** CI Sessions
**************/

Try to read_session() -> {
    session = Get cookie (if using cookies will also contain data)

    if(database) { 
        session .= pull data from database
    }

    checks if valid...

    $this->userdata = session data

} else { 
    create a new one
}

/****** Saving ******/

session data is serialized either way

if(cookie) {
    save cookie with serialized data and params like "last_activity"
}
if(database) {
    save serialized data in db and session in cookie
}
有帮助吗?

解决方案

你有没有看一看 Zend_Session?

  • 你可以通过该届会议的标识通过网址使用PHP设置
  • 你可以过期的某些会议可变的时间或者通过跳(请)
  • 移徙问题纳入其他应用程序不会那么容易,我想这不是很好的,当你搞 $_SESSION 当你使用 Zend_Session
  • Zend_Session 有一个adpater基础的方法为节省会议数据。一个 保存处理程序 星展集团包括在内,但是其结构可以允许对定义的处理程序被通过。
  • Zend_Session 支持验证程序,以检查有效性的一届会议。这里我们有一个开放的结构,允许通过在定义对象进行验证。
  • 你可以锁一届会议,aka使它只读的
  • 你可以阻止的实例的多个实例,同一届会议的名字空间
  • 再加上有更多的发现 Zend_Session 例如再生session ids,问题还记得我的饼干,撤销记得我的饼干等等。

其他提示

好吧,之后通过挖掘的定义、非$_SESSION基笨lib,两个Kohana和Zend库(其使用$_SESSION),以及其他几届会议图书馆从其他项目中,我认为,我建立的回答我的问题。什么满足你所有的事情我以上所列(除了闪数据)。

这里是代码 如果任何人想要使用它,或阅读它,同时建立他们自己的图书馆。我留下了许许多多的意见彻底地解释整个事情和很想有一些反馈。它支持标记,闪光的基础上传者,饼干,会议再生每5分钟(或者不管你设定)去除旧的课程,并支持用于储存会议的任何数据库,文件系统,memchache,或任何其他形式要设定的。

看看 定该会话的数据,包PHP的默认会议处理的功能,使用MySQL储存

  • 作为一个包装PHP的默认会议处理的功能,但不是保存会议的数据,在平面文件,它们存储在一个数据库,提供更好的安全和更好的性能

  • 这是一个拉在和seemingless替代PHP的默认会议处理程序:PHP会议将采用同样的方式作之前,使用库;你不需要改变任何现有的密码!

  • 实现行锁,确保这些数据是正确处理的情况下,与多个并行的阿贾克斯的请求

  • 一个文件只有

  • 成熟,高度优化的和不断发展

  • 非常好的文件

你可以使用这CI: EchoSession.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top