background image

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

  

启动了,并能够访问。安装好以后,在默认网站 >应用程序配置。