|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在学习PHP这六个月里,每看到一个优秀的php脚本,就会兴奋的手舞足蹈,嘴里还不停的说:太酷了,太酷了。呵呵,很幼稚吧,但这可能就是兴趣。
先说PHP的毛病信息,来自PHP100服装论坛
PHP的毛病信息由一下几局部组成
{毛病类型}: {毛病缘由} in {毛病文件} on {毛病行数}
申明了在哪一个文件的哪一行中因何种缘由呈现了何种毛病。
罕见的毛病类型普通有上面几种:
Parse error(解析毛病)普通都陪伴着Syntax errors(句法毛病) ,申明你的法式不合适PHP的语法。
它是级别最高的毛病,全部剧本基本不会被履行。
普通都是由一个表达式短少";" 或各类括号引号不成对引发的。看具体的信息就可以晓得成绩的地点。
普通句法毛病城市给你提醒一个解析器代号,告知你呈现的成绩是在哪里。好比:
Parse error: syntax error, unexpected T_STRING in xxx.php on line 9
T_STRING 是一个解析器代号,望文生义,它代表字符串,良多毛病缘由城市带解析器代号。经由过程它你可以更直接的懂得到毛病的缘由。
unexpected意思长短预期的,换句话说也就是过剩的。
更多解析器代号请参考:http://www.php.net/manual/zh/tokens.php 或php手册 英文版中叫:List of Parser Tokens 中文版中叫:解析器代号列表
下面的毛病的意思是说你的第九行有一个非预期的字符串。
我的代码:
1-7: 略
8 : test(array('a'))
9 : xxx();
10 : >
这个成绩若何处理呢?把第九行的xxx删失落,切实其实合适PHP语法了。
然而那不是我想要的,实践上是我的第8行短少了一个";",处理举措是在第8行开头加分号。
注重:这个例子还申明了一个成绩,毛病呈报说是哪行,成绩纷歧定就非在哪行,也多是它的后面一行或几行酿成的。最典范的例子是某法式提醒失足行数在文件的最初一行,你去看,发明那行除“>”之外没有其余字符,这类情形通常为短少引号招致的。你要往后面找不成对的引号或其余甚么标点。假如你非要抬杠,认准了行号不松口,那就不是php的成绩了。
Fatal Error(致命毛病),仅次于Parsing Error的毛病,履行到产生毛病的行时,剧本会终止运转。
在法式合适PHP语法的基本上,利用了不决义的函数,或require一个不存在的文件,逝世轮回招致法式履行超时,城市招致fatal error。
普通体现为:
Fatal Error: Call to undefined function func() in php100.php on line 某某
就是说在某某行你挪用了一个不决义的func函数,这时候候普通就是看你是不是忘了包括该包括的文件,是不是写错了函数名,是不是写错了文件名。(PHP100.com)
Warning(正告),比致命毛病级别稍低,但法式不会由于剧本毛病而终止。
普通呈现在include一个不存在的文件,或一个法式需求一个参数,然而你没传参数,而且你也没指定参数的默许值。
Warning视情形可以免呈现,其实没法防止,可以加@强行屏障。
Notice(告诉),级别最低,普通可以疏忽,不会影响到剧本的运转。多半产生在变量或数组下标不决义的情形。
注重:多半notice都可疏忽,然而多数的notice也能够会反应出对照严重的成绩。
好比 Notice: Undefined variable: sql in xxx.php on line xx
你看到有个变量"sql"不决义,这便可能很风险了,在register_globals=on的情形下,没准这个毛病直接就成了他人操作数据库的后门。
另外还有一些其余类型的毛病,平常不罕见,我就不多说了。
总结
综上所述,PHP的毛病提醒会告知咱们良多工作,为咱们查找毛病供应了极大的便利。好好使用它,会大大的进步咱们的任务效力和任务质量。
不外,它带来优点的同时,也能够会泄漏办事器的敏感信息,轻易让进击者发明办事器的破绽。
php开辟情况必定要翻开全体毛病提醒,翻开毛病显示。最大限制的削减变乱的产生。
临盆情况万万要把毛病显示封闭,改用日记来纪录毛病。别给有心人以无隙可乘。
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。 |
|