php - 检查 session 是否设置,如果没有创建一个?

标签 php session

我想检查当前是否设置了 session ,如果没有创建 session ,请允许页面正常运行(什么都不做)。

我看了另一个 SO 问题,其中发布了以下代码:

if ( empty( $_SESSION['login'] )) { } else { }

最简单的方法是为每个 session 设置类似 $_SESSION['a'] 的内容,然后运行 ​​if(empty($_SESSION['a'] )) 检查 session 是否存在?

再一次,您是否可以在不首先调用 session_start() 的情况下使用 session 变量,从而使它过时(我昨天试过这个,虽然作为回显,而不是 if 语句来检查变量是否在没有执行的情况下执行意识到在我可以回显变量之前需要调用 session_start())。

可能有一种经常使用的简单方法,但我似乎找不到它。

如有任何帮助,我们将不胜感激!

最佳答案

session_id() 返回标识当前 session 的字符串。如果 session 尚未初始化,它将返回一个空字符串。

 if(session_id())
 {
      // session has been started
 }
 else
 {
      // session has NOT been started
      session_start();
 }

关于php - 检查 session 是否设置,如果没有创建一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6901547/

相关文章:

php - 从命令行执行脚本时,即使使用 ob_start() 也会将输出打印到终端

范围内的php随机数 - 不重复

php - MySQL/PHP 按行值合并行

ruby-on-rails - Rails 登录重置 session

php访问HTTPS和HTTP之间的 session 数据

php - PHP中基于计时器的测验实现

php - openssl_digest vs hash vs hash_hmac? SALT 和 HMAC 的区别?

php - 一个关于 php $_SESSION 数组的愚蠢的 'important' 问题

session - 服务栈认证

php - 单击链接时使用 Jquery 更新 PHP session 变量