最近新发布的一款ZBP导航主题,因为涉及采集程序,所以某些客户在开启主题之后显示不出采集的新闻程序,原因就是出现“PHP Notice: Undefined variable: web in \zb_users\theme\navlee\source\s_news_li.php on line 3”很明显这是PHP默认的配置导致这个错误,要解决此问题有两种方式,具体的解决方法如下。
error_reporting设置:
找到 error_reporting = E_ALL
修改为 error_reporting = E_ALL & ~E_NOTICE
原理是:减弱PHP的敏感程度,使其遇到这种问题不报错。
ini_set("error_reporting","E_ALL & ~E_NOTICE");
同样也可以解决问题,要知道在 php 中,变量通常是不需要定义直接使用的,但有的时候因为 php 环境的问题会出现各种各样奇奇怪怪的事情,今天在调试程序的时候直接提示 Notice: Undefined variable 的错误,这是因为有的变量没有定义造成的,也是没谁了。
说下为什么推荐用第二种方法,某些人目前并没有使用云主机,可能是测试虚拟机(未上线),也可能是某服务商的虚拟机,这些虚拟机都有一个共同点,那就是基本上没有设置php.ini的权限,所以第一种方法显然不适合,再者说,php.ini是整个php核心的配置文件,不要说敲错一个字符,哪怕是一个标点错误都会导致php无法运行,所以我还是建议使用第二种方法。
哦对,最后一个建议,不要开启哪些所谓的防火墙,网站卫士,如果你怕网站被攻击建议你开启CDN,绝逼比什么垃圾卫士强(个人见解,勿喷,因为自己都用过,所以才如是说。)