php15大错误

Common PHP Errors
php15大错误


1.设置出错报告

首先你得打开你的 PHP出错报告。从安全角度来说,你可能会想到关闭它。但是如果程序出了问题,而你又需要debug的时候,你可以通过以下的PHP代码临时来打开出错信息。
<?php error_reporting(E_ALL) ?>
Or you can add these lines to the root .htaccess:
或者,你可以将以下几行加入到.htaccess文件里

php_flag display_errors on
php_value error_reporting 6143

2.语法构造错误

This is a syntax error. Perhaps you forgot a semi-colon at the end of a line, or you forgot a double quote (”) or an end bracket (}) after you started one. For quote and semicolon issues, the problem is usually the line above the one reported in the error. For brackets, it may be at the end of the script.

这是一个语法构造错误。(这段翻译我想不出怎么好,自己根据理解翻译)出现这段信息的时候,往往都在出错代码的上一行,请检查一下代码的结束,是否双引号或者大括号不匹配,有时候也会有一些字符串的问题在里面。


3.

Parse error: syntax error, unexpected $end in
You’re most likely missing a } somewhere. Make sure that each { you have is also closed with a }.

这东西是忘记了“}”,请检查“{}”是否一一对应了。

4.

Parse error: syntax error, unexpected T_STRING, expecting ‘,’ or ‘;’ in..
There may be double quotes within double quotes. They either need to be escaped or brought to single quotes. It’s also possible that a new PHP statement was started before the previous was finished.

出现这种问题往往是在双引号中又有了双引号,可能需要在双引号前加上转义符或者使用单引号。通常问题在显示的行数之上一行。

5.

头出输出错误

Warning: Cannot add header information - headers already sent by (output started at /home/vnessa5/www/errors.php:9) in….
Warning: Cannot send session cache limiter - headers already sent in somefile.php on line 222

一般情况下,HTML的解析都会在PHP前面,而代码尝试在发送header相关信息时,你已经有了HTML输出。所以你在发现有这种情况出现的时候,请检查你的代码以保证没有HTML代码或者甚至是一个空格。一般有两个解决方案。1)在文件头部设定HEADER标签。2)在你要输出的页面前插入HEADER标签的内容。

<?php ob_start();
Then this at the very end of the page (not usually required)
ob_end_flush(); ?>


6.

mySql 资源错误

Warning: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in…

通常,在进行msyql_query后,你需要对取得的数据进行遍历,如果出现上面错误时,你得检查一下你的$result是否是一个resource,这种情况在SQL查询语句错误(但错误没有被抛出)的情况下,所以,发现此问题时,可以考虑打印出SQL,到PHPMYDMIN里执行一下看看是怎么回事。

7.

Supplied argument is not a valid stream resource…


这个问题的情况通常是你代码中指定的表或者资源不存在于该数据库


8.

Sessions are not being created or maintained

Sessions 不能被创建或者被修改维护

这可能会出现以下几种情况
(1) The program isn’t remembering your login 程序没有记录下你的登录状态
(2) Your shopping cart won’t hold items 你的购物车没有保持你的商品状态
(3) Your php script is redirecting like crazy 你的PHP代码跳转的太疯狂
(4) “Call undefined function session_start” error 你的服务器没有打开Session功能
(5) PHP isn’t processing pages called by something like index.php?page=home&id=7 你的PHP代码不能打开某个页面,比如index.php?page=home&id=7


9.


Your site is most likely dependent on register_globals. You can enable them by putting this line in your .htaccess (or just enabling in your php.ini if you have access):
你的网站可能会依赖register_globals(全局变量)打开。你可以将下面这行加到你的.htaccess文件里(当然,如果你有权限更改PHP.ini,还是改php.ini更方便)
php_flag register_globals On


10.

文件流错误
Warning: failed to open stream…

这两个问题的出现,通常是文件没有找到或者文件不能被require和include。(上面的英文我觉得不太准,个人认为应该是:先检查一下文件是否确实存在,检查文件的路径,当然,还得看一下php.ini的include_path,如果这些都检查过了。那么尝试用绝对路径加载文件)

11.

Warning: fopen(…): failed to open stream: Permission denied in…

文件没有权限被读取,如果你想要你的文件被读取,设置文件权限为775,如果该文件需要被执行,那么就设置成777。否则设置用户权限/组为:nobody



12.

Warning: <…> is not a valid stream resource…
Warning: fread(): supplied argument is not a valid stream resource in…

这也是一个常见错误,当你使用fopen(), fread(), feof()等函数时,就可能会出现,错误原因一般是fopen()或者其他函数打开文件失败,但错误信息被屏蔽,如$fp=@fopen('file.txt');,在这种情况下,再使用fread()读取时,就会出现上面的出错信息。

13.

Warning: Failed opening….
Warning: Failed opening ‘…’ for inclusion (include_path=’.:/usr/local/lib/php’) in Unknown on line 0

请确认文件是否有读写权限并且路径是正确的。如果不是,你需要把路径加载到你的PHP代码或者.htaccess文件里
include(”/path/to/files”);


14.空白页面

You go to a .php page, but it’s blank.

当你转向到a.php的页面时,但是打开的却是空白页面,出现这种问题的原因有很多,这里只介绍一些让你尝试着解决一下:
1、错误报告是否关闭了?如果是,请打开错误报告,并且在你的这个文件里加上一些输出试试
2、是否PHP代码本身就是一个输出页面,试着寻找一下print之类的函数?
3、检查数据库连接,例如,用户名密码等
4、试着用完整的PHP标签:<?php?>,而尽量少用短标签<??>

有时,一些软件的测试版本中往往都会存在着一个错误或者BUG等,你可以试着将出错页用该程序的其他版本来替换掉。象(phpBB或者Ballery


15.

Max Execution Time Error

最大执行时间错误


打开页面时,显示 "Max_execution_time" 执行时间错误。
这应该是你的PHP代码在运行的时候,超过了服务器所允许的时候,但是,这是可以通过修改.htaccess或者php.ini来进行修改(0代表了不限制)

php_value max_execution_time 0




16.打开基目录错误

Warning: Unknown(): open_basedir restriction in effect.

出现Open_basedir问题的时候,往往需要先检查,PHP_INI里面有没有设定open_basedir,如果PHP.ini里没有设定,还需要查看apache的http.conf的虚拟主机设定里,也否也进行了设置。如果设定了,还需要检查这些目录是否可读写,否则会出现受保护的错误。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值