php 学习:新手 PHP 程序员常见的错误
【1
】面之间无法传递变量 get,post,session 在最新的 php 版本中自动全局变量是关闭的,
所 以 要 从 上 一 面 取 得 提 交 过 来 得 变 量 要 使 用 $_GET[’foo’],$_POST[’foo’],
$_SESSION[’foo’] 来 得 到 。 当 然 也 可 以 修 改 自 动 全 局 变 量 为 开 (php .ini 改 为
register_globals = On)
;考虑到兼容性,还是强迫自己熟悉新的写法比较好。
【2】Win 下 apache 用 get
方法传递中文参数会出错:
test.php ?a=你好&b=
你也好
传递参数是会导致一个内部错误
解决办法:”test.php ?a=”.urlencode(你好).”&b=”.urlencode(你也好)
【3】win 下的 session
不能正常工作
php .ini 默认的 session.save_path = /tmp
这显然是 linux 下的配置,win 下 php 无法读写 session 文件导致 session 无法使
用,把它改成一个绝对路径就可以了,例如 session.save_path = c:windows emp
【4
】显示错误信息
当 php .ini 的 display_errors = On 并且 error_reporting = E_ALL 时,将显示所
有的错误和提示,调试的时候最好打开以便纠错,如果你用以前 php 写法错误信息多半
是关于未定义变量的。变量在赋值以前调用会有提示,解决办法是探测或者屏蔽。
例如显示$foo,可以 if(isset($foo)) echo $foo 或者 echo @$foo
【5】Win 下 mail()
不能发送电子邮件
在 linux 下配置好的 sendmail 可以发送,在 win 下需要调用 smtp
服务器 来发送
电子邮件,修改 php .ini 的 SMTP = ip //ip 是不带验证功能的 smtp
服务器 (网上很难
找到)
php 发送邮件的最好解决方法是用 socket 直接发送到对方 email
服务器 而不用转
发服务器 。
【 6 】 初 装 的 mysql 如 果 没 有 设 置 密 码 , 应 该 使 用 update mysql.user set
password=”yourpassword” where user=”root”
修改密码
【7】header already sent
这个错误通常会在你使用 HEADER 的时候出现,他可能是几种原因:,你在使用
HEADER 前 PRING 或者 ECHO 了.你当前文件前面有空行.你可能 INCLUDE 了一个文件,
该文件尾部有空行或者输出也会出现这种错误。!
【8】更改 php .ini
后没有变化
重新启动 web server,比如 IIS,Apache
等等,然后才会应用最新的设置。
【9】php 在 00 上面安装(ISAPI
的安装方法恳请高手指教)
PHP 的 php isapi.dll 好像和 00 有些冲突,只能用 CGI
模式安装
步 骤 一 , 先 www.php .net 下 在 一 个 安 装 程 序 , 我 是 装 的 是 : php
-..-installer.exe,你也可以去找最新的版本,在安装 php -..-installer.exe 之前保证你
的 IIS6.0
–
启动了,并能够访问。安装好以后,在默认网站 >应用程序配置。