php - 为什么要测试 session 是否已启动

标签 php session

这来自official php manual :

session_start() creates a session or resumes the current one based on a session identifier passed via a GET or POST request, or passed via a cookie.

我在我读过的所有 php 编程书籍中都看到了这样的代码:

<?php
session_start();
?>

但我在这里看到一些帖子,其中开发人员正在检查 session 是否已启动。

if (session_id() == '') {
    session_start();
}

手册似乎建议 session_start() 为您进行检查,如果它没有启动,那么它会自行启动。

那么,谁是正确的呢?

最佳答案

这是因为您不能在同一脚本上多次调用 sesseion_start()

假设我们有一个脚本 index.php,它包含另一个脚本 frontController.php 并且都有一个 session 启动

如果您不验证并尝试启动另一个 session ,PHP 将抛出如下通知:

session 已经启动 - 忽略 frontController.php:80 中的 session_start()

关于php - 为什么要测试 session 是否已启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51601677/

相关文章:

php - Symfony MongoDb 无法检索新字段值

php - 将值传递给同一个 php 文件

php - Paypal : By One click Transfer payment from Merchant account to any paypal account using PHP

ruby-on-rails - ActiveRecord SessionStore 的性能

c# - 我应该如何保存 HttpPostedFile

facebook - IE Facebook 应用程序 iFrame 上的 session 丢失

php - 短语查询扩展的最快方法

javascript - PHP 提交后 jQuery 加载同一页面

java - Servlet中jsp获取session属性值

PHP/AJAX 检查 session 变量是否改变