background image

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(你也好)

 

  要注销一个变量,可以用 unset($foo)或者$foo=NULL
【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 写法错误信息多半是关于未
定义变量的。变量在赋值以前调用会有提示,解决办法是探测或者屏蔽。
【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 启动了,并能够访
问。安装好以后,在默认网站-->应用程序配置。

 

  步骤二:点击 web

 

服务扩展 -->新建 web 服务扩展。

 

  步骤三: 扩展名-->php ,然后添加
  步骤四:找到 php .exe 的路径添加上去。

 

 

  步骤五: 确定就可以了!

 

  步骤六: 选择 php 的服务扩展,然后点击允许。

【10】有时候 sql 语句不起作用,对数据库操作失败,最简便的调试方法,echo 那句 sql,