PHP 获取活动会话

2023-11-29

我试图回显过去 15 分钟内处于活动状态的每个活动会话,我使用以下代码进行检查以记录其上次查看时间。

$_SESSION['last_seen'] = date("Y-m-d H:i:s");

但是在执行以下代码(即本文上方的代码)时,我收到这些错误。

注意:未定义索引:last_seen in C:\xampp\htdocs\hk\templates\default\index.php 第 249 行警告: 非法字符串偏移“last_seen” C:\xampp\htdocs\hk\templates\default\index.php 第 249 行

<?php
foreach($_SESSION as $s){
    if ($s['last_seen'] >= date("Y-m-d H:i:s", strtotime("-900 seconds")))
    {
        echo $s['username'];
    }
}
?>

长话短说:

1)首先,您需要每次都调用 session_start() (如果没有的话)。

2) 您无法使用 PHP 的本机会话处理程序读取其他会话。您需要实现自己的会话处理程序。

我猜你刚刚开始使用 PHP。 以下是您需要了解的有关 Web、PHP、会话和 Cookie 的一些基本解释:

Cookie:Cookie 是小信息,在页面加载时发送到客户端的浏览器。如果浏览器接受 cookie(情况并非总是如此),他就会在每次请求时发送该 cookie 信息。

所以...做类似的事情

<?php

setcookie('my_cookie', 'Hello World!', time() + 60 * 60);

如果客户端请求该页面并且执行上面的代码,则客户端浏览器会被要求存储来自 your_domain.com 的名为“my_cookie”的 cookie,其中包含“Hello World!”

假设浏览器已接受该 cookie,只要 cookie 尚未过期,他就会在针对 your_domain.com 的每个页面加载时发送该 cookie。 这允许您在客户端存储小型文本信息,并且您将能够使用 $_COOKIE['my_cookie'] 检索和读取以后的请求。

那么这与会话有什么关系呢?如果没有 cookie,我们将无法跟踪客户。 PHP 应用程序会丢失请求之间的会话信息。 如果客户端偶然发现您的页面,第一次调用 session_start(),PHP 将创建一个具有唯一 ID 的会话 Cookie,并在文件系统空间上的某个位置分配数据,存储在 $_SESSION 中。这称为“会话存储”。所以你可以开始将数据写入 $_SESSION 就像$_SESSION['last_seen'] = date("Y-m-d H:i:s");。在接下来的几个请求中,浏览器每次都会将该 cookie 发送到您的服务器。回想一下 session_start(),PHP 现在知道会话 cookie 已经设置并读取该 ID。如果 ID 与之前生成的会话存储匹配,则将填充 $_SESSION var,并且您可以读取 $_SESSION['last_seen'] 的值 您认为使用 $_SESSION 可以访问任何用户的所有会话信息,但这是错误的。会话存储只会为您提供该客户端的会话 ID 特定数据。 正如我之前提到的,您无法使用 PHP 的本机会话处理程序访问任何其他会话数据,但是您可以实现自己的会话处理程序。

大多数开始编写自己的会话处理程序的人倾向于使用 MySQL 数据库作为会话存储。我更喜欢使用 Redis。

这可能会帮助您: 基本 PHP 会话教程:http://www.phpro.org/tutorials/Introduction-To-PHP-Sessions.html

编写您自己的会话处理程序并使用 MySQL:http://culttt.com/2013/02/04/how-to-save-php-sessions-to-a-database/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 获取活动会话 的相关文章

  • 从支付网关重定向回时用户会话丢失

    我已将 Cyber source 配置为我的支付网关 我能够导航到 cybersource 并进行付款 并能够成功重定向回该网站 我也可以取消付款并重定向回我的网站 我收到来自支付网关的响应 但是 用户在从支付网关重定向回来时会被注销 我正
  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el
  • jQuery ajax 调用包含重音字符的 url 将错误的 Uri 从 IE 发送到服务器

    我在使用 IE 发送包含重音字符的 url 时遇到问题 这是一个简单的函数 function runjQueryTest var url test Beyonc get url function 在服务器 PHP 上我记录了请求uri的值
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PHP WCF 集成

    是不是如果我想支持php客户端访问我的服务 我必须有一个基本的http端点 这是因为php仍然只支持soap 1 1吗 据我所知 自从我使用 PHP 以来已经两年了 情况仍然如此 如果客户端应用程序将使用 PHP 的内置 SoapClien
  • PHP:读取所有传入 HTTP 请求的类 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 GitHub Action 中使用不同版本的 PHP 进行测试

    我有一些 PHP 代码 其中包含使用以下命令运行的测试PHPUnit并想对其进行测试GitHub Actions 我在他们的文档中找不到测试 PHP 包的方法 我想使用不同版本的 PHP 进行测试 但他们只有最新的版本7 3安装 您可以添加
  • 如何在 PHP 的 HTML 页面中显示错误消息?

    我有以下登录表单 login php 其中要求输入用户名和密码
  • 使用 PHP glob 列出 FTP 服务器上的文件不起作用

    我使用此代码来访问目录 location files pictures glob location png 我想使用 FTP 访问远程路径 location opendir ftp user password host name files
  • 使用 XPATH(和 PHP)从样式属性中选择背景 url

    我只想从此背景图像样式属性中选择 url 这可以通过 XPATH 实现吗 a href http www test com style background image none test a 我有类似的东西 url xpath gt qu
  • Facebook API sdk 4.0 - 将照片发布到 Facebook

    我正在尝试创建一个应用程序 用户可以在其中浏览照片并将其从计算机提交到 Facebook 为此 他们首先必须将照片上传到服务器 然后使用 Facebook 请求将此图像发布到 Facebook 我正在使用多部分 表单数据 这就是我到目前为止
  • Nginx 502 网关错误。通过增加buffer来解决。为什么?

    我正在设置 LEMP 堆栈来运行 Drupal 我安装了 Nginx 和 PHP FastCGI Nginx 工作正常 但任何运行 PHP 的尝试都会出现错误 502 Bad Gateway 谷歌很快发现 nginx 502 错误网关 ht
  • 使用 PHP 从 Mongo 解码 JSON

    我已经看过这个线程 PHP 解码嵌套 JSON https stackoverflow com questions 3555335 php decode nested json并没有设法用它来解决我的问题 我目前正在从 Mongo 获取 J
  • 如何使用更新资源控制器 laravel 4?

    我有带有索引 编辑 更新方法的客户控制器 Route resource customer CustomerController 控制器方法更新 public function update id echo id 我的 HTML 表单
  • 从 Laravel 4 输入生成新数组

    我使用 Input all 从动态生成的表单中获取一些输入 我使用 jQuery 来允许用户添加字段 字段名称为 first names last names 和 emails input 变量现在看起来像这样 array size 4 t
  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4

随机推荐

  • 使用正则表达式在 Visual Studio Code 中设置代码片段

    Comment prefix body 我已经设置了about代码片段 目的是添加注释 添加文件的基目录和文件名像这样但丢弃路径的其余部分 我相信这最初是基于 TextMate 片段 我已经尝试了一切 但我无法让它工作 这可能是愚蠢的事情
  • 在两个固定 div 元素之间创建滚动 div

    我对在网站中如何定位 div 不太熟悉 所以我希望有人可以在这里提供帮助 我想要得到的是一个三明治类型的设置 在两个 div 中间有一个滚动内容 这样我就有一个页眉 div 和一个页脚 div 它们都必须在页面上保持静态 然后 在它们之间
  • 一个组件可以有多个模板吗?

    有没有办法让 Angular 2 组件根据我想要放置的位置使用许多模板文件 例如 我有一个login组件 我想用两种不同的设计将其放置在我的网站上两次 有没有一种方法可以将模板传递给组件 不确定 NG2 是否有内置方法来支持这一点 我只是使
  • 在 C# 中检测(通过反射)Enum 类型是否为“Flags”类型的策略

    我使用反射来读取程序集中的类型 以生成代码 我可以看到一些枚举应该标有 Flags 属性 但编写这些枚举的人忘记添加此属性 有没有可靠的方法来检测枚举何时可以被视为 标志 枚举 我目前的策略是按降序读取枚举 并检查 element last
  • 如何生成 R 计数矩阵

    在 R 中 我可以使用我感兴趣的特定列名称作为数组返回计数结果 如下所示 require plyr bevs lt data frame cbind name c Bill Llib drink c coffee tea cocoa wat
  • 从 Java 游戏中删除对象(Eclipse)

    让我们开始吧 我有一个 处理程序 类 它充满了 getter 和 setter 并且其中包含添加和删除对象的代码 它看起来像这样 public void addObject GameObject object this object add
  • 尝试创建下拉菜单 pygame,但卡住了

    到目前为止 这是我的代码 import pygame as pg pg init clock pg time Clock Generating screen w scr 640 h scr 480 size scr w scr h scr
  • 在 Firefox 中禁用跨域 Web 安全

    在 Firefox 中 我该如何做相当于 disable web security在 Chrome 中 这个问题已经被发布了很多次 但从来没有一个真正的答案 大多数是附加组件的链接 其中一些在最新的 Firefox 中不起作用或根本不起作用
  • 如何在 Julia 中使用 JuMP 提取优化问题矩阵 A,b,c

    我使用符号变量和约束在 Julia JuMP 中创建了一个优化模型 例如以下 using JuMP using CPLEX model Mod Model CPLEX Optimizer sets I 1 2 Variables x var
  • Perl 中的读写锁

    我正在寻找一种在 Perl 中实现读 写锁的好方法 这是同步 Windows 和 Unix 上不同 Perl 线程和 或进程的文件访问所必需的 尝试过 Fcntl flock 如果它按预期工作 这对我来说将是完美的 不幸的是 看起来在压力下
  • 是否可以使用 appengine 模块和云端点?

    使用 appengine 模块意味着创建动态 Web 应用程序 而不是通常的 appengine Web 应用程序项目 云端点与常见的 appengine Web 应用程序项目配合良好 但这些项目不支持 appengine 模块 问题是 如
  • 从 XML 生成 SQL 架构

    我们正在使用 Oracle 11 数据库和 java 开发环境 使用 Eclipse 并且希望将多个 xml 模式迁移到 SQL 模式 看过 ax xsd 但确实需要一些我们可以从 ant 运行的东西 未安装 SQL Server 的 Ec
  • Web Api 2 - 自定义数据类型JSON序列化

    我实际上是 Web Api 的新手 所以我的问题可能听起来有点奇怪 我有简单的 API 来返回有关价格变化的历史信息 我的控制器的操作如下所示 HttpGet Route api history id size public async T
  • 检索 SharePoint 列表数据并将其绑定到下拉列表

    我对 SharePoint 相当陌生 因此提前为听起来像 新手 而道歉 我创建了一个简单的 Web 部件 它使用 Web 用户控件 ascxfile 提供 Web 部件的所有控件 在 ascx 文件上 有一个 DropDownList 目前
  • SDN 4 - InProcessServer 在快照构建中损坏

    从大约一周前开始 运行测试进程内服务器 on 4 0 0 构建快照导致以下异常 Caused by java lang NoClassDefFoundError org neo4j ogm testutil TestServer at or
  • INSERT INTO 语句中的语法错误

    当我连接 Access 数据库时遇到问题 然后我在 INSERT INTO 语句中收到错误语法错误 我的代码是 string str Provider Microsoft ACE OLEDB 12 0 Data Source C Users
  • pandas 和 Stata 13 个文件

    我安装了 pandas 0 13 1 但是pandas read stata 无法阅读 dta以 Stata 13 格式创建的文件 出现错误 TypeError cannot concatenate str and NoneType obj
  • 如何将 stdin 上的输入发送到 Makefile 中定义的 python 脚本?

    鉴于这个问题的答案 在 Makefile 中嵌入 Python 以设置 make 变量这有效 define NEWLINE endef define PYTHON SCRIPT CODE import sys print hi endef
  • 通过分号分隔从单个查询中删除多个表

    我正在尝试从 sqlite 的单个操作中删除多个表 我尝试用分号分隔它 但它没有按预期工作 这是我当前的代码 NSString query DELETE from Friends DELETE from Stream DELETE from
  • PHP 获取活动会话

    我试图回显过去 15 分钟内处于活动状态的每个活动会话 我使用以下代码进行检查以记录其上次查看时间 SESSION last seen date Y m d H i s 但是在执行以下代码 即本文上方的代码 时 我收到这些错误 注意 未定义