Loading... 今天在测试一段PHP代码的时候 好不容易弄好数据库,在服务端运行网页的时候出现 <blockquote> 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 </blockquote> 进入网站会出现大量类似下面的提示,但是可以正常显示和运行 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); 虽然不好弄但是可以解决问题 解决这个问题之后,运行又出现了如下提示 <blockquote> A session had already been started - ignoring session_start() </blockquote> 出现这个问题,是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文件你可以这样去做 <pre><code class="language-php line-numbers">if(!isset($_SESSION)){ session_start(); } </code></pre> 如果出现 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头! Last modification:September 12th, 2018 at 08:51 pm © 允许规范转载 Support 请博主喝一杯咖啡 ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat