如何判断会话是否处于活动状态? [复制]

2023-11-30

根据请求,您可以通过几种不同的方式来判断会话是否已启动,例如:

$isSessionActive = (session_id() != "");

Or:

$isSessionActive = defined('SID');

然而,如果您启动一个会话然后关闭它,这两种方法都会失败。session_id()将返回前一个会话的 ID,同时SID将被定义。同样,调用session_start()此时会生成一个E_NOTICE如果您已经有一个活动会话。有没有一种明智的方法来检查会话当前是否处于活动状态,而不必诉诸输出缓冲,关闭运算符(@session_start()),或者其他同样hacky的东西?

编辑:我编写了一个补丁来尝试将此功能包含在 PHP 中:http://bugs.php.net/bug.php?id=52982

编辑 2011 年 8 月 29 日:PHP 5.4 中添加了新函数来解决此问题:“通过新函数 session_status 公开会话状态”

// as of 8/29/2011
$isSessionActive = (session_status() == PHP_SESSION_ACTIVE);

2011 年 12 月 5 日编辑:会话状态()在 PHP 手册上。


查看对原始问题的编辑;基本上,PHP 5.4 及更高版本现在有一个名为session_status()来解决这个问题!

“通过新函数 session_status 公开会话状态”(SVN 修订版 315745)

如果您在 PHP 5.4 之前的版本中需要此功能,请参阅哈克雷的回答.

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

如何判断会话是否处于活动状态? [复制] 的相关文章

  • 使用 PHP 中的 GD 库在图像上绘图

    我创建了一个代码来生成随机图案图像 它创建一个具有给定宽度和高度的图像 并用 40x40 像素的小矩形填充它 这是我的代码
  • MySQL 概念:会话与连接

    我对 MySQL 的概念有点困惑 会话与连接 当谈论连接到 MySQL 时 我们使用连接术语 连接池等 然而在 MySQL 在线文档中 http dev mysql com doc refman 4 1 en server system v
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja
  • 正则表达式上的换行符

    我试图替换两个标签之间的所有内容 但我无法构建正确的表达式 这就是我所做的
  • get url 重定向时 File_get_contents() 不起作用

    我正在使用的功能是 function http post url data data url http build query data data len strlen data url date default timezone set
  • php中的条件格式化html表与时间戳比较

    echo table style width 100 tr echo td Order td echo td Destination td echo td Location td echo td Status td echo td Time
  • 如何关闭未关闭的 HTML 标签?

    每当我们从数据库或类似来源获取一些经过编辑的用户输入内容时 我们可能会检索仅包含开始标记但不包含结束标记的部分 这可能会妨碍网站当前的布局 有客户端或服务器端的方法来解决这个问题吗 找到了一个很好的答案 使用 PHP 5 并使用 DOMDo
  • 使用 PHP Selenium Webdriver 单击下拉菜单中的选项?

    我正在使用 PHP Selenium Webdriver 包装器Facebook https github com facebook php webdriver 任何人都可以给我一个如何单击或从选择下拉菜单中选择选项的示例吗 我已经尝试过这
  • Google Cloud SQL 上的故障转移如何运作?

    我打算将 PHP 应用程序 从 Google Cloud Platform 外部的服务器 连接到 Google Cloud SQL 我想知道如何设计应用程序以正确地对其数据库进行故障转移 根据manual https cloud googl
  • 如何防止在 PHP 中使用超出“使用”范围的特征方法

    我想知道是否有任何方法可以防止在 PHP 的任何类上下文之外使用特征方法 让我用一个简短的例子来解释我想要什么 这是我当前的代码 File MyFunctions php trait MyFunctions function hello w
  • 通过 URL 指定控制器类与为每个控制器编写一个脚本相比,有何优缺点?

    今年夏天我安装了两个不同的 PHP 系统 每个都使用两种不同的方法 方法 1 每个任务一个 PHP 文件 该方法需要一个PHP为每个主要任务创建文件 例如 我的上传脚本可以通过http www domain com upload php O
  • 检查 PHP 中的字符串长度

    我有一个长度为 141 个字符的字符串 使用下面的代码我有一个if如果字符串大于或小于 140 则语句返回一条消息 libxml use internal errors TRUE dom new DOMDocument dom gt loa
  • Mysqli 更新抛出 Call to a member function bind_param() 错误[重复]

    这个问题在这里已经有答案了 我有一个 70 80 字段表单 需要插入到表中 因此我首先根据表单中的输入名称在数据库中创建了一个表 而不是手动创建一个巨大的插入语句 这是我使用的代码创建 更改表 function createTable ar
  • PHP 扩展开发入门 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 请推荐有关 PHP 低 级 modules 编程接口的帮助文章或教程 搜索我的书签 我发现的唯一链接是
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • WordPress 自定义帖子类型未显示在搜索结果中

    我在 WordPress 中遇到自定义帖子类型 测验 和搜索的问题 自定义帖子类型未显示在我的搜索结果页面中 我的搜索结果中仅显示默认的帖子内容 以下是我使用的代码 函数 php函数create posttype register post
  • 从所有会话中注销

    我有一个注销选项 这是我的代码 session start session destroy setcookie key time 60 60 24 setcookie username time 60 60 24 我想添加另一个选项来注销所
  • 如何使用 php 在 sql 查询中转义引号?

    我有一个疑问 sql SELECT CustomerID FROM tblCustomer WHERE EmailAddress addslashes POST username AND Password addslashes POST p
  • 使用 PHP 将 latin1_swedish_ci 转换为 utf8

    我有一个数据库 里面充满了类似的值 Dhaka 应该是 Dhaka 因为我在创建数据库时没有指定排序规则 现在我想修复它 我无法从最初获取数据的地方再次获取数据 所以我在想是否可以在 php 脚本中获取数据并将其转换为正确的字符 我已将数据

随机推荐

  • M2Crypto 的 AES 问题

    有人可以指出这段代码中的错误吗 author gaurav date 15 Feb 2011 5 10 59 PM import M2Crypto from base64 import b64encode b64decode ENC 1 D
  • 在运行单元测试之前复制到 teamcity 的 out 目录

    所以我的情况是我终于完成了TeamCity的CI配置 我做到了在一些友好的帮助下运行我的单元测试 然而 许多单元测试都会失败 因为一旦构建并准备好运行 就需要在unittests dll旁边有一个配置文件 我写了一个简单的Command L
  • Dataproc YARN 容器日志位置

    我知道这个线程的存在 各个 dataproc Spark 日志在哪里 However if i ssh connect to a worker node vm and navigate to the tmp folder this is a
  • 如何在Golang中访问嵌套的Json键值

    团队 编程新手 解组 Json 后 我有可用的数据 如下所示 其中包含嵌套的 Key 值 我能够访问的平面键值 如何访问嵌套键值 这是解组后的字节切片数据 如下所示 gt tables map name basic snatpool mem
  • Bootstrap .popover('show')、.popover('hide') 不起作用。将其绑定到点击作品

    我有一个已绑定到弹出框的按钮 当有人单击弹出窗口中的表情符号之一时 我想隐藏弹出窗口 然而 smiley popover hide 不起作用 不幸的是 我无法用准系统代码重现这一点 它只发生在实时站点上 即https coinchat or
  • 作为不同用户的 RPM %post

    我需要在 RPM 的 post 部分中以不同用户身份运行命令 目前我正在通过 python 使用一些 hack 但这不是最好的方法 它确实感觉有点脏 post p usr bin python import os pwd subproces
  • 将一个向量中的每个元素与第二个向量中的每个元素相加

    我想将一个向量中的每个元素与另一个向量中的每个元素相加 如下所示 but避免 for 循环 有没有简单的方法呢 vadd lt function vrow vcol vmatrix lt matrix nrow length vrow nc
  • 静态内容不能引用非静态方法

    我无法编译以下代码 public class Test public static void main String args int a calcArea 7 12 System out println a int calcArea in
  • 如何使用斯坦福解析器将文本拆分为句子?

    如何使用将文本或段落拆分为句子斯坦福解析器 有没有什么方法可以提取句子 比如getSentencesFromString 因为它是规定的Ruby 您可以检查 DocumentPreprocessor 类 下面是一个简短的片段 我认为可能还有
  • 遇到 0 时按组重置的 Cumsum

    下面是我的数据框 我想得到 是 列 我似乎无法理解cumsum当它根据 id 的 值 字段达到 0 时重置 还有其他类似的问题 但解决方案不适用于我的实际数据集 test lt data frame id c 1 1 1 1 2 2 2 2
  • 如何在具有2000万行数据集的MySQL中删除重复项?

    我有一个很大的 MySQL 数据库 我需要快速删除重复的项目 它看起来是这样的 id text1 text2 1 23 43 2 23 44 3 23 44 删除后 表的剩余部分应为 id text1 text2 1 23 43 3 23
  • 将数组存储在共享首选项中

    我有一个Array具有整数值 它会随着时间的推移而增长 它大约有最多 50 个值 我想将数组持久存储 因此我考虑将其存储在SharedPreferences 我知道其中不能存储复杂类型 但我也听说要序列化Array然后将其存储在Shared
  • 如何在使用 Electron-builder 构建 exe 后运行“sqlite3”

    我在以下人员的帮助下构建了我的电子应用程序https medium com jspoint packaging and distributing electron applications using electron builder 31
  • DOMPDF 中的自定义宽度和高度

    无论如何 我可以设置生成的 PDF 的宽度和高度吗 我想自定义PDF的宽度和高度 通常它会采用短铜版纸的尺寸 但我如何定制它 举例来说 我希望它的大小为 200 x 500 像素 任何想法将不胜感激 干杯 您可以通过在调用 DOMPDF s
  • Magento - 列出产品类别

    在 Magento 的每个产品详细信息页面上 我想列出属于哪些类别 我将如何实现这一目标 尝试一下 currentCatIds product gt getCategoryIds and also categoryCollection Ma
  • 在 primefaces 中绑定文件下载参数

    我想在 primefaces 中下载一个名称可能不同的文件 这是控制器的代码 ManagedBean name fileDownloadController eager true ViewScoped public class FileDo
  • 如何在不刷新整个页面的情况下重新加载DIV内容

    我只想用我得到的内容替换 DIV 内容 当我使用ajax向服务器发出get请求后 ajax type GET url http 127 0 0 1 8000 result age ageData occasion occasionData
  • 如何在仅支持常量表达式的函数中使用变量作为参数

    我正在使用这个功能 delay cycles var 我收到以下错误 论证到 delay cycles必须是常量表达式 很公平 但我怎样才能绕过这个呢 我每次都必须以不同的值延迟我的程序 我从 RS232 接收数据并将其存储在一个int多变
  • Python lambda函数下划线冒号语法解释?

    在以下 Python 脚本中 其中 aDict 是字典 0 在 lambda 函数中起什么作用 sorted aDict items key lambda 0 让我们把它分开 1 假设你有一个字典 di di one 1 two 2 thr
  • 如何判断会话是否处于活动状态? [复制]

    这个问题在这里已经有答案了 根据请求 您可以通过几种不同的方式来判断会话是否已启动 例如 isSessionActive session id Or isSessionActive defined SID 然而 如果您启动一个会话然后关闭它