我在Windows上运行了我的PHP项目,并在Mac上运行了相同的代码。但是当我在Windows中运行我的项目时,我得到了这个错误。
错误消息是。
A session had already been started - ignoring session_start()
仅在Windows系统上出现。但在Mac中,我没有收到任何错误消息。 请任何人给我一个解决方案......
答案 0 :(得分:41)
你说你用支票开始会话:
if(!isset($_SESSION)){
session_start();
}
事实是$ _SESSION总是存在,如果你没有把东西放进去,那么它将永远是空的,所以这个陈述将总是返回真实。
答案 1 :(得分:5)
我不知道为什么Windows显示错误而Mac不显示。
但您可以尝试将所有the session_start()
替换为
if(!isset($_SESSION))
{
session_start();
}
这可能对你有帮助..
答案 2 :(得分:5)
此邮件是E_NOTICE
。您只在Windows计算机上看到它的原因很可能是因为error_reporting
设置不同。
如果您在php.ini
搜索error_reporting
,则应排除E_NOTICE
,如果您不想看到它。
或者,修复代码以不多次启动会话。理想情况下,您只有一个核心代码文件可以启动您的会话而没有其他session_start()
实例(即不要将它放在每个页面上)。然后,您可以在每个页面上包含此项,或创建一个路由模式,以确保在每个页面加载时调用初始化代码。
答案 3 :(得分:0)
在php.ini(http://php.net/session.auto-start)中查看session.auto_start,很可能是会话自动启动