1
7
听起来你已经掌握了基本知识。但是,如果您是手动执行所有这些操作,那么您实际上只是在实现自己的
如果要使用数据库处理会话,可以使用自己的数据库覆盖默认会话处理。看一看 session_set_save_handler() . 我在我的应用程序中这样做。
您可以拥有刚才描述的所有功能,这些功能是通过使用这个来实现的,但是仍然具有为您实现这些功能的$_会话的能力。 例如,如果您想在启动会话之前添加一个IP检查以查看会话是否仍然有效,那么可以将其添加为“open”函数的一部分。如果要将会话数据写入十个不同的数据库(而不是这样),可以在“write”函数中完成这一点。 这些函数都是根据您如何使用$_会话来使用的,通过将它们放入一个简单的类中,您可以非常有效地管理它的工作方式。 您将看到会话ID是一个传递给读/写/销毁函数的参数,您仍然可以使用guid生成例程以同样的方式管理它。但是,您可以将guid生成和签入这个会话管理器类,并让open()函数执行这些操作。集中,没有混乱,没有烦恼。 |
2
1
如果您需要以某种方式将当前用户链接到其他数据库信息,那么现在这样做的方式是很好的。 为了简单起见,最好使用会话。我建议您在www.php.net/sessions上阅读一些关于它的内容,并从中作出决定。它很容易使用,但比使用数据库表的灵活性差。您仍然可以设置所需的所有值,但随后必须在需要将这些值用于数据库操作时提取它们并将它们插入查询中。 |
3
1
我觉得你走对了。它实际上将取决于应用程序的安全性要求。您可以将$\u会话看作是一种在页面刷新之间提供状态的机制,与$\u cookie非常相似。在此上下文中,您的用户的标识。您的数据库应该提供进一步的身份验证机制。可以唯一标识用户的内容。一个典型的假设是IP地址,但是如果某些IP发生了变化,会发生什么呢?用户代理是另一种可能性,但它们不是很独特。 |
Garrett Rose · 会话数据如何在页面之间传递? 6 年前 |
Viktor Rudi · PHP-更改会话值以更改语言 6 年前 |
John_Cartor · PHP登录(会话问题) 6 年前 |
glembo · 基于会话令牌认证问题的Laravel 5.6购物车 6 年前 |
Rehan · 登录验证php后创建会话 6 年前 |
joko · 通过会话、两个目录使用多种语言 6 年前 |