在使用程序的时候经常会遇到一些错误,这些错误可能是操作不当造成,运行环境造成,程序本身BUG造成。使用了这么长时间的PW有积累了一些经验,俗话说:久病成良医嘛。
在第十篇里,我来说说如何在使用PW的时候查错,比如白屏,比如显示不正确. ..........
这里先说下我们经常会用到的东西,一个是phpinfo(),一个是echo()(print_r())还有一个是exit;
论坛自带的还可以到后台打开debug模式,再深入些可以找glboal.php的error_reporting(E_ERROR | E_PARSE);改成error_reporting(E_ALL);当然排除完后要改回去,要不界面很难看。
phpinfo(),也就是查看平台环境,比如
PHP版本,Mysql版本,GD支持情况以及其他一些
信息..
echo();输出内容的函数,我个人习惯用print_r ,实际上echo速度要比print_r快的多,功能差不多,把想要的东西输出到屏幕。
exit; 这个是停止退出功能,如同DOS里面的quit,和Mysql命令行下的exit。
在讨论区看到的比如安装
问题,
升级问题,第一步白屏...,第几步如何如何.我们就可以用以上方式来排除下错误.
比如说安装时候白屏,可以在install.php里面加输出
代码,变得可视性。比如找到ob_start();在前面加入
print_r($systitle."我要查错");exit;($systitle在该程序里指标题"title_install"),如果屏幕能出现
PHPWind Install我要差错 ,说明此前程序执行正常,继续往下,比如再找到} elseif ($step==1) {前面加入 print_r($systitle."我要差错");exit; ,能输出内容的说明程序执行正常....
echo也是相同的,如echo($systitle."我要查错");exit;效果是一样的。再说说正常使用的时候白屏了,原因可能是
风格造成的,或者文件缺失造成的,最快的方法是定位到风格如
http://www.phpwind.net/index.php?skinco=wind,这也是因为,为什么
建议大家不要覆盖wind风格的原因,在文件和程序都改动而出错的情况下,可以做最后救命草.,可能因为逻辑代码错误,
<!--
EOT;
if($groupid=='guest'){print <<<EOT
-->
<a name="online"></a> [<a href="index.php?online=yes#online">打开在线列表</a>]
<!--
EOT;
}print <<<EOT
-->
后面缺少了
}等原因也会导致白屏,后面我们会将到PW模板技术详细再讨论。
GD都支持水印为什么打不上,这个问题也很多人问,首先环境要支持,GD库是个很庞大的知识库,比如要支持图片JPEG库,PNG库,FreeType库等,另外设置问题,
6.3.2增加了各个板块各自设置是否开启水印,很多朋友因为这部设置没有开启而打不上。
插件白屏的错误,和第一段相同,用最土的办法,在执行页面输出一些可视性的东西,虽然方法比较笨有时候还蛮实用的。
<?php phpinfo(); ?> 把这个内容存为xxx.php上传到论坛目录下,打开浏览器可以看到论坛所在环境的部分情况。示范:
http://www.gooader.cn/info.php,如PHP Version 4.4.4,比如查 System :运行平台的操作系统, GD Version :GD库版本,此块内容可以查看支持的GD范围, 还可以查看 _SERVER["SERVER_SOFTWARE"] 是IIS还是apache还是其他...,还可以查看是否加载EA,安装Zend,以及MYSQL。曾经遇到环境没有加载Mysql而无法安装,弄了半天才发现,原来phpinfo里面有Mysql内容.........
总而言之,经验慢慢积累,在差错的过程可以学习很多,真正查到错误可以反馈给官方,差错的目的是能无错的使用,反馈给官方的作用是让更多人避免出现类似错误。今天先说到这里,明天继续~!~