Heim  >  Artikel  >  Backend-Entwicklung  >  php新手易犯的几个小错误

php新手易犯的几个小错误

WBOY
WBOYOriginal
2016-07-25 09:07:28917Durchsuche
本文为大家列举了php新手易犯的几个小错误,供大家参考。1、header already sent 这个错误通常会在你使用HEADER的时候出现,他可能是几种原因

本文为大家列举了php新手易犯的几个小错误,供大家参考。

1、header already sent 这个错误通常会在你使用HEADER的时候出现,他可能是几种原因:1,你在使用HEADER前PRING或者ECHO了2.你当前文件前面有空行3.你可能INCLUDE了一个文件,该文件尾部有空行或者输出也会出现这种错误。!

2、页面之间无法传递变量 get,post,session在最新的PHP版本中自动全局变量是关闭的,所以要从上一页面取得提交过来得变量要使用$_GET['foo'],$ _POST['foo'],$_SESSION['foo']来得到。当然也可以修改自动全局变量为开(php.ini改为 reGISter_globals = On);考虑到兼容性,还是强迫自己熟悉新的写法比较好。

3、Win32下apache2 用get方法传递中文参数会出错: test.php?a=你好&b=你也好 传递参数是会导致一个内部错误   解决办法:"test.php?a=".urlencode(你好)."&b=".urlencode(你也好) .............

4、win32下的session不能正常工作 php.ini默认的session.save_path = /tmp 这显然是Linux下的配置,win32下php无法读写session文件导致session无法使用,把它改成一个绝对路径就可以了,例如session.save_path = c:Windows emp

5、Win32下mail()不能发送电子邮件 在linux下配置好的sendmail可以发送,在win32下需要调用smtp服务器来发送电子邮件,修改php.ini的SMTP = ip //ip是不带验证功能的smtp服务器(网上很难找到) php发送邮件的最好解决方法是用socket直接发送到对方email服务器而不用转发服务器。

6、初装的MySQL如果没有设置密码,应该使用update mysql.user set password="yourpassword" where user="root" 修改密码

7、显示错误信息 当php.ini的display_errors = On并且error_reporting = E_ALL时,将显示所有的错误和提示,调试的时候最好打开以便纠错,如果你用以前php写法错误信息多半是关于未定义变量的。变量在赋值以前调用会有提示,解决办法是探测或者屏蔽。 例如显示$foo,可以if(isset($foo)) echo $foo 或者echo @$foo



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn