今天在测试一段PHP代码的时候
好不容易弄好数据库,在服务端运行网页的时候出现

Warning: Use of undefined constant HOST - assumed 'HOST' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\Chat2\dbcon.php on line 3

Warning: Use of undefined constant USERNAME - assumed 'USERNAME' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\Chat2\dbcon.php on line 4

Warning: Use of undefined constant PASSWORD - assumed 'PASSWORD' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\Chat2\dbcon.php on line 5

进入网站会出现大量类似下面的提示,但是可以正常显示和运行

Notice: Use of undefined constant ctbTitle - assumed 'ctbTitle' in d:\ctb1.5\ctb\include\config.php on line 23...

答案:这些是 PHP 的提示而非报错,PHP 本身不需要事先声明变量即可直接使用,但是对未声明变量会有提示。一般作为正式的网站会把提示关掉的,甚至连错误信息也被关掉

关闭 PHP 提示的方法

搜索php.ini:

error_reporting = E_ALL

改为:

error_reporting = E_ALL & ~E_NOTICE

还有个不是办法的办法就是

在每个文件头上加

error_reporting(0); 虽然不好弄但是可以解决问题

解决这个问题之后,运行又出现了如下提示

A session had already been started - ignoring session_start()

出现这个问题,是php常遇到的,不过在某些时候 你怎么去折腾总是不能解决问题,

注意:

A session had already been started - ignoring session_start() 如果这后面没有任何文件,你需要这样去解决

找到 php.ini 中,查看 session.auto_start = 1 是否为1 ,如果是1,请更改为0,然后重启IIS(或Apache)服务器,原因是是1的话,服务器会自动启动session,在php中使用session_start() 就多余了,所有会报错,如果你不想更改php.ini文件你可以这样去做

if(!isset($_SESSION)){  
   session_start();  
}  

如果出现

A session had already been started - ignoring session_start() - in xxx.php line 1 如果是这样的话,你这样去解决

1 .查看 xxx.php 的session_start() 之前是否有字符输出,如果有,请将session_start() 移到最前面或者删除前面的字符
2 . 如果前面没有字符,检查文件编码是否为UTF-8,如果是请用DW 或则其他编辑器将文件的DOM去掉,在这里强烈警告不要用Windows的记事本编辑,因为他会自动添加DOM头!


如果支付遇到问题,请联系我们
Weixin1:Aburauru Weixin2:wanglanyy QQ:95387119
Last modification:September 12, 2018
如果觉得我的文章对你有用,请随意赞赏,点赞也是鼓励!