当前位置: 首页 > 面试题库 >

查找打开的会话数

王子明
2023-03-14
问题内容

我正在寻找一种简单的方法(无数据库)来列出网站上活跃用户的数量。我想出的最简单的方法是计算打开的会话数。

代码 应工作:

$number_of_users = count(scandir(ini_get("session.save_path")));

当然,这不会因为该目录的安全性限制而存在(应该有!!)。有谁知道在不更改目录权限的情况下访问此号码的另一种方法。

注意: 我正在寻找一个 不涉及数据库 或降低PHP会话安全性的选项。

结束语: 对于任何遇到此问题的人,我最终都从根目录开始使用了cronjob(每分钟运行一次),其操作类似于:

ls /var/lib/php5/ | wc -l > /var/www/sessioncount

确保/var/www/sessioncountapache用户可以读取该文件。然后,您可以只读取PHP中的文件:

$number_of_users = file_get_contents("/var/www/sessioncount");

问题答案:

轻松并不意味着在这种情况下没有数据库。同样依靠会话来查看有多少用户处于活动状态也不可靠。

如果您想走这条路,可以执行每隔几分钟由安全进程运行的cronjob,并将该计数保存到PHP读取的文件或db中。

但我建议您走数据库路线。



 类似资料:
  • 下面是Spring3.x和Hibernate3.x上的一个假设情况 我在Spring有一个服务层,它调用3个DAO来构建一个模型。DAO 是事务性的(@Transactional),并且具有延迟加载的Hibernate集合。 该服务方法会导致一些更新,以及数据的获取。 典型的DAO方法如下- 我有以下关于OSIV的问题 - 1.在默认的AUTO模式下,此会话刷新(数据库更新)多少次? 2.是否可以

  • 问题内容: 考虑到我选择的JPA(Hibernate实现),Spring和<在此处插入MVC框架-Struts 1,Struts 2,Spring MVC,Stripes …>的开发框架,我要问这个问题。 我一直在思考我的实体层中的关系- 例如,我有一个包含许多订单行的订单实体。我已经设置好我的应用程序,以便它热切地加载每个订单的订单行。您是否认为这是解决如果将获取策略设置为false会遇到的惰性

  • 我正在构建一个反向代理服务器,它将授权http请求并将其传递给一些内部API。 我根据DB中的条目授权传入请求。 这个项目中的性能是优先的——反向代理服务器不应该增加太多响应时间。 简而言之: 我正在使用来查询数据库。我在Spring配置中的init期间打开Hibernate会话: 然后我将会话注入DAO层,并在read方法中使用它: 正如您所看到的,我并不是在每次DAO调用中都关闭/打开会话。我

  • 我能查到詹金斯的。 我还尝试了svn和http协议,得到了以下错误: SVN:E210003:未知主机

  • Spring MVC+Hibernate、JavaConfig WebAppConfig: 用户 HTTP状态500-请求处理失败;嵌套异常为org.springframework.transaction.CanNotCreateTransactionException:无法打开事务的Hibernate会话;嵌套异常为java.lang.NoClassDefoundError:org/hibern

  • 我正在用会话加载数据,但没有看到我在其他地方所做的更改。 “由于在刷新过程中出现以前的异常,此会话的事务已回滚。”(或类似) 但是为什么flush()坚持发布回滚? 但是为什么一个自动调用回滚不够?为什么我必须再次回滚? 如何创建一个始终为每个查询添加特定筛选器的查询? 我的查询返回的对象数与查询.count()告诉我-为什么? 我已经创建了一个针对外部联接的映射,当查询返回行时,不会返回任何对象