我正在使用AJAX
,SQL
,PHP
编写一个面向对象的聊天系统示例来训练自己。我在拯救"敏感"用户数据进入数据库以检查各种输入和进程,如登录,在线状态,发送的消息等。
但是,当用户登录系统时,我会检查$_SESSION['status']
是true
还是false
以授予对网站不同位置的访问权限。我使用类Login.class
在一个单独的文件中检查数据,然后从那里我可以决定是否保留Login.class
的对象以接收用户的信息并使用它,或者我是"杀"我将所有内容保存在$_SESSION
个变量(即$_SESSION['username']
等等......)之后的对象。
基本上我对什么是更安全或更好的编程以及什么不是更感兴趣。我知道php-login project正在使用两种方式。它有点告诉我它们都很好,因为很多专业人士都在实现这个代码。我认为你应该坚持一种方法,还是我误解了什么?
答案 0 :(得分:2)
除了实际会话内容的初始化(你已经知道,session_start()
可能会在你的引导程序中出现),理想情况下你应该尝试不直接使用$ _SESSION,为什么要问? / p>
因为可维护性!假设你想要实现另一种形式的会话,也许你想使用memcache而不是平面文件会话,只使用cookie(我说只是因为PHP默认将你的会话ID存储在cookie中,所以你实际上已经在使用cookie了! )
同样易于阅读,错误输入错误并导致错误的可能性极小(也许你必须检查管理状态很多,而你输入错误$_SESSION['is_amdin]
,现在你在这里使用了OOP(例如。 Auth::isAdmin()
)你会收到关于失踪功能的致命错误)
如果你试图保留你的东西OO并使用正确的IDE,你也会收到自动完成和代码提示的额外好处,你可以PHPDOC一个函数,许多IDE将使用它来提供文档你写的弹出窗口。像$_SESSION
这样的关联数组没有任何方法可以为编辑器或人类定义提示!