首页 > 解决方案 > Session 类构造函数中的 session_start() (是否在每个 url 上启动多个会话)

问题描述

这意味着当我重定向到另一个 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 类时开始新会话

标签: phpsession-cookies

解决方案


您的问题是在代码中间调用 session_start :

http://php.net/manual/en/function.session-start.php

笔记:

要使用基于 cookie 的会话,必须在向浏览器输出任何内容之前调用 session_start()。

尝试将其放在文件开头、类声明之前或另一个包含中。


推荐阅读