可能重复:
已经启动的 PHP 会话
我在 windows 和 Mac 上运行了我的 PHP 项目,代码相同。但是当我在 Windows 而非 Mac 中运行我的项目时出现此错误。
错误信息是。
A session had already been started - ignoring session_start()
仅在 Windows 系统上提供。但在 Mac 中我没有收到任何错误消息。请任何人给我一个解决方案......
可能重复:
已经启动的 PHP 会话
我在 windows 和 Mac 上运行了我的 PHP 项目,代码相同。但是当我在 Windows 而非 Mac 中运行我的项目时出现此错误。
错误信息是。
A session had already been started - ignoring session_start()
仅在 Windows 系统上提供。但在 Mac 中我没有收到任何错误消息。请任何人给我一个解决方案......
您说您以支票开始会话:
if(!isset($_SESSION)){
session_start();
}
事实是 $_SESSION 始终存在,如果您没有在其中放入任何内容,那么它将始终为空,因此该语句将始终返回 true。
我不知道为什么 windows 显示错误而 Mac 不显示。但是您可以尝试全部替换the session_start()
为
if(!isset($_SESSION))
{
session_start();
}
这可能会帮助你..
此消息是一个E_NOTICE
. 您只在 Windows 机器上看到它的原因很可能是因为您的error_reporting
设置不同。
如果你搜索php.ini
你error_reporting
应该排除E_NOTICE
如果你不想看到它。
或者,将您的代码修复为不多次启动会话。理想情况下,您将只有一个可以启动会话的核心代码文件,而没有其他实例session_start()
(即不要将其放在每一页上)。然后,您可以在每个页面上包含它,或者创建一个路由模式,以确保在每个页面加载时调用初始化代码。
看看你的 php.ini (http://php.net/session.auto-start) 中的 session.auto_start,很可能会话是自动启动的