PHP:会话已经启动 - 忽略session_start()仅在Windows中出现

Mut*_*gam 15 php

可能重复:
已启动的PHP会话

我已经在Windows上运行了我的PHP项目,并且使用相同的代码运行了Mac.但是当我在Windows中运行我的项目而不是Mac时,我遇到了这个错误.

错误信息是.

A session had already been started - ignoring session_start()
Run Code Online (Sandbox Code Playgroud)

这只是在Windows系统上.但在Mac中,我没有收到任何错误消息.请任何人给我一个解决方案.....

Pet*_*iss 43

你说你用支票开始会话:

if(!isset($_SESSION)){
    session_start();
}
Run Code Online (Sandbox Code Playgroud)

事实是$ _SESSION总是存在,如果你没有把东西放进去,那么它将永远是空的,所以这个陈述将总是返回true.


Sri*_*har 5

我不知道为什么Windows显示错误和Mac不.但你可以尝试更换所有the session_start()

if(!isset($_SESSION)) 
    { 
        session_start(); 
    } 
Run Code Online (Sandbox Code Playgroud)

这可能会对你有所帮助..


Rud*_*ser 5

这条消息是一个E_NOTICE.您只在Windows计算机上看到它的原因很可能是因为您error_reporting设置的方式不同.

如果你搜索你php.ini,error_reporting你应该排除,E_NOTICE如果你不想看到它.

或者,修复您的代码以不多次启动会话.理想情况下,您只有一个核心代码文件可以启动您的会话而没有其他实例session_start()(即不要将其放在每个页面上).然后,您可以在每个页面上包含此内容,或创建一个路由模式,以确保在每个页面加载上调用初始化代码.