今天在做一个网站的登录功能时,php报错啦,它竟然报错了。那么就开启调试模式,找原因。

php中警告提示A session had already been started – ignoring session_start() 解决方法

PHP报错代码及原因

A session had already been started - ignoring session_start()

以面的错误代码表示:已经有一个存在并打开的 session 要忽略 session_start()

翻译成白话的意思就是:session_start() 被重复调用

解决方法

解决方法1:

修改 php.ini 的配置,在php.ini 查找如下的代码

session.auto_start

并修改成

session.auto_start = 0;  // 0表示关闭  1表示打开

我们这里不需要自动开启 session,所以设置为0将其关闭。

注:这种方式治标不治本,如果程序在以后的移植,可以会再次出现同样的错误

解决方法2:

利用判断是否存在 session_id 的方法,来确定是否打开 session

if (!session_id()) session_start();