Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP获取活动会话_Php - Fatal编程技术网

PHP获取活动会话

PHP获取活动会话,php,Php,我试图回显在过去15分钟内一直处于活动状态的每个活动会话,我使用以下代码进行检查以记录其最后一次看到的时间 $_SESSION['last_seen'] = date("Y-m-d H:i:s"); 但是我在执行下面的代码时收到了这些错误,这是本文上面的代码 注意:未定义索引:最后一次出现在 第249行C:\xampp\htdocs\hk\templates\default\index.php警告: 中“最后一次看到”的非法字符串偏移量 第249行的C:\xampp\htdocs\hk\tem

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

$_SESSION['last_seen'] = date("Y-m-d H:i:s");
但是我在执行下面的代码时收到了这些错误,这是本文上面的代码

注意:未定义索引:最后一次出现在 第249行C:\xampp\htdocs\hk\templates\default\index.php警告: 中“最后一次看到”的非法字符串偏移量 第249行的C:\xampp\htdocs\hk\templates\default\index.php


我建议你实际尝试
echo';打印(美元会话);echo“”
用于故障排除-这将告诉您会话阵列的结构

<?php

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

PS:我相信您是用一个命令启动会话的。session\u start()?

我想您不理解
$\u session
全局数组。它只包含用户当前会话的数据(不是站点的所有用户的数据)。您应该将此数据保存在memcached或数据库中。

长话短说:

1) 首先,每次都需要调用会话_start()(如果还没有调用的话)

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

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

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

所以。。。像这样做


我已经启动了会话,我在$_会话中也有这样的内容:[last_seen]=>2015-09-12 21:55:42kirugan是正确的,Liam对什么是php会话感到困惑,但是您可以询问默认(文件)处理程序维护的所有会话,您不需要在每个会话中设置一个值,也不需要取消序列化每个文件-只需检查mtime即可查看最后一次访问。@symcbean file session是合适的,但只有在您有一个应用程序服务器的情况下才合适。这个讨论开始时非常混乱,现在开始时非常混乱,但很有可能在群集上运行默认处理程序,即使没有棘手的会议丑陋的黑客。您只需要共享存储,有很多方法可以做到这一点,其中一些甚至可以在mswindows上运行。根据其他地方的评论,说您不能使用PHP的本机处理程序读取其他会话是错误的。是的,这是真的-使用SessionHandler::read在技术上不是不可能的,但您需要会话id。或者在这种情况下,您需要所有活动会话id在$_会话['last_seen']上迭代这是一个伟大的性能杀手。
<?php

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