这将是在php中存储会话的最有效方式。(用于登录或用户相关数据) 最好的事情是数据库还是在PHP中使用内置的$ _SESSION? 一般来说,对于更大的网站和速度,哪一个最有效?
答案 0 :(得分:0)
这是一个非常糟糕的问题,因为它没有定义一个单一的答案,但不适合继续并尝试满足您的需求
首先会有一个检查,如果用户名不等于数据库中的一个 或者电子邮件,并在您可以检查数据库中的用户名并成功为其创建函数后执行propper错误检查
你需要有一个用户登录,如果凭据是真实的那么
session_start();
function logged_in()
{
return (isset($_SESSION['user_id'])) ? true : false;
}
if ($login === false)
{
$errors[] = 'Wrong username/password combination';
} else
{
$_SESSION['user_id'] = $login;
header('Location: index.php');
exit();
尝试这个系列是高度推荐的
https://www.youtube.com/watch?v=9kyQGBABA38&list=PLE134D877783367C7你会在两天内看完它,但会在这个问题上有一个良好的基础
我希望我帮助
答案 1 :(得分:0)
绝对没有理由相信内置的PHP机制是慢还是坏。它正在写入文件,这对于大约90%的网站使用的单服务器场景是完美的,它经过了彻底的测试和工作。内部工作确实使用编译的C语言来获得此存储的最佳性能。
无论你做什么,你自己必须用PHP实现,这要慢一些,或者你必须开始用C创建PHP会话保存处理程序。
因此,如果你真的开始使用前面的负载均衡器进行多服务器设置,并且没有配置粘性,那么你需要一个可以从所有网络服务器访问的会话存储。现有很多解决方案:
Memcached - 安装memcached扩展时,还有memcached session save handler。
您还可以尝试Zend Server附带的Zend会话群。
您可以尝试编写自己的会话处理程序,但必须确保正确锁定!否则,并发请求将覆盖彼此的会话数据。到目前为止,我所看到的大多数代码都失败了,甚至是成熟的框架,如Symfony 2 still do with non-native storage。
只有在使用内部会话保存处理程序(并且编码正确)时,PHP才会自行锁定,因此每个会话ID实际上只能运行一个脚本。所有其他人在致电session_start()
时停止。
如果您认为现有的存储处理程序都不符合您的要求,那么您必须自己实现一些功能,但您的问题听起来并不像您已经习惯了群集的Web服务器环境。
关于“什么是最有效的”?有效还是高效?还是表现好?还是最快的?没有人会知道你是否不能指出要衡量的数字!以及如何衡量。
即使知道这一点,也无法事先知道。试想有人说“使用数据库,这总是更快”,然后你最终在共享主机系统中遇到一个糟糕的提供者,数据库系统过载,完全没有性能,你就像“不是这样的数据库比文件更快“ - 你是对的。出于同样的原因,说比不使用数据库更快也是一个谎言。
测量性能!改变一些东西,看看它是否更快。如果是,请留在那里,否则回去。