php - Session 类构造函数中的 session_start() (是否在每个 url 上启动多个会话)
问题描述
session_start() 方法在 Session.php 类构造函数中
每个页面标题都需要 Session.php 类 (require_once('Session.php'))
这意味着当我重定向到另一个 url 并且每次启动新会话时,将再次包含 Session 类。这将导致错误。
但是这段代码运行正常,为什么呢?
class Session {
private $signed_in = false;
public $user_id;
private $is_admin;
public $message;
public $count;
function __construct() {
session_start();
$this->visitor_count();
$this->check_the_login();
$this->check_message();
}
} //End of Session Class
$session = new Session();
为什么我应该在每次初始化 Session 类时开始新会话
解决方案
您的问题是在代码中间调用 session_start :
http://php.net/manual/en/function.session-start.php
笔记:
要使用基于 cookie 的会话,必须在向浏览器输出任何内容之前调用 session_start()。
尝试将其放在文件开头、类声明之前或另一个包含中。
推荐阅读
- linux - /var/log/nginx 不存在于 Docker 容器中,并且 Dockerfile 无法创建目录
- laravel - Laravel 处理输入数组
- python-3.x - Alembic 在线模式 FATAL:数据库不存在
- kotlin - Kotlin 检测 linter:如何将 detektTest 包含到检测 gradle 步骤中?
- blazor - 非泛型方法“HttpClient.GetAsync(string)”不能与类型参数一起使用
- angular - Angular 10:如何向链接添加查询参数
- django - 如何将 sql mod 转换为 django orm?
- visual-studio - 在哪里可以找到有关 azure 构建管道的测试结果?
- python - 将随机种子绑定到python中的类实例
- javascript - 为什么要在forms或者href中指定https而不是直接指定域名