gpt4 book ai didi

PHP 获取事件 session

转载 作者:行者123 更新时间:2023-11-29 22:02:02 26 4
gpt4 key购买 nike

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

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

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

Notice: Undefined index: last_seen in C:\xampp\htdocs\hk\templates\default\index.php on line 249 Warning: Illegal string offset 'last_seen' in C:\xampp\htdocs\hk\templates\default\index.php on line 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 的 native session 处理程序从其他 session 中读取数据。您需要实现自己的 session 处理程序。

我猜您刚刚开始使用 PHP。以下是您需要了解的有关 Web、PHP、 session 和 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'] 检索和读取以后的请求。

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

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

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

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

关于PHP 获取事件 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32544226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com