当前位置:  开发笔记 > 编程语言 > 正文

我的PHP应用程序的用户限制 - 使用示例代码

如何解决《我的PHP应用程序的用户限制-使用示例代码》经验,为你挑选了1个好方法。

我有一个PHP应用程序,我希望限制在任何给定时间可以活动的用户数量.我希望保持尽可能轻,因为实现它的原因是因为我们当前的服务器无法处理负载 - 因此这是一个临时解决方案,直到我们可以升级.我们将会话存储在memcache中,因此我编写了以下脚本来计算活动会话并将其存储在平面文件中 - 此脚本每5分钟运行一次.

connect('127.0.0.1', 11211);
  $activeSessions = $memcache->getStats(); 


$file_content = <<
TEXT;

file_put_contents("activesessions.php", $file_content);
?>

现在位于每个页面的顶部,很容易找出当前有多少用户活动...我现在的问题是,是否有超过限制来阻止更多人创建会话.这是一个问题的原因是我无法告诉加载页面的用户是否已经有一个活动的会话而没有做类似的事情:

     $limit && empty($_SESSION))
{
   session_destroy();
   include('limit_message.php');
   exit;
}
?>

应该做的伎俩,但在此过程中,它将创建一个会话来检查会话是否存在:S ...因此扭曲我的活动会话计数.

所以基本上我有一个解决方案......我的问题是,是否有人有更好的解决方案?如果您认为我的解决方案是最好的,请评论或投票让我知道:D

请帮忙 :)



1> DrPerdix..:

如果session_id()没有任何参数调用它将返回用户当前的sesssion id或如果没有当前会话ID则返回空字符串,如PHP 函数手册中所述.根据你所拥有的,你会想做这样的事情:

include ('activesessions.php');
//uid is the users facebook id

if ($activeSessions > $limit && session_id() == '')
{
   include('limit_message.php');
   exit;
}

session_id(md5($uid.$secret));
session_start();

这只是一个检查cookie是否设置了会话名称的快捷方式,如果是,则该值是有效的会话ID字符串.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有