php
学习心得
(
适合
php
初学者
)
来源:
发布时间:
2009-09-18
发布人:
浏览:
30
人次
字体:
[
大
中
小
]
【
1
】页面之间无法传递变量
get,post,session
在最新的
php
版本中自动全局变量是关闭的,
所以要从上一页面取得提交过来得变量要使用
$_GET['foo'],$_POST['foo'],$_SESSION['foo']
来得到
当然也可以修改自动全局变量为开
(php.ini
改为
register_globals = On)
;考虑到兼容性,还是
强迫自己熟悉新的写法比较好。
【
2
】
Win32
下
apache2
用
get
方法传递中文参数会出错
test.php?a=
你好
&b=
你也好
传递参数是会导致一个内部错误
解决办法
:"test.php?a=".urlencode(
你好
)."&b=".urlencode(
你也好
)
.............
【
3
】
win32
下的
session
不能正常工作
php.ini
默认的
session.save_path = /tmp
这显然是
linux
下的配置,
win32
下
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
】
Win32
下
mail()
不能发送电子邮件
在
linux
下配置好的
sendmail
可以发送,在
win32
下需要调用
smtp
服务器来发送电子邮件
修改
php.ini
的
SMTP = ip //ip
是不带验证功能的
smtp
服务器
(
网上很难找到
)
php
发送邮件的最好解决方法是用
socket
直接发送到对方
服务器而不用转发服务器
【
6
】初装的
mysql
如果没有设置密码,应该使用
update mysql.user set password="yourpassword" where user="root"
修改密码
【
7
】
header already sent
这个错误通常会在你使用
HEADER
的时候出现,
他可能是几种原因:
1
,
你在使用
HEADER
前
PRING
或者
ECHO
了
2.
你当前文件前面有空行
3.
你可能
INCLUDE
了一个文件
,
该文件尾
部有空行或者输出也会出现这种错误。
!
【
8
】更改
php.ini
后没有变化
重新启动
web server
,比如
IIS
,
Apache
等等,然后才会应用最新的设置
【
9
】
php
在
2003
上面安装(
ISAPI
的安装方法恳请高手指教)
PHP4
的
php4isapi.dll
好像和
2003
有些冲突,只能用
CGI
模式安装
步骤一,
先
www.php.net
下在一个安装程序,
我是装的是:
php-4.2.3-installer.exe
,
你也可以
去找最新的版本,在安装
php-4.2.3-installer.exe
之前保证你的
IIS6.0
启动了,并能够访问。
安装好以后,在默认网站
-->
应用程序配置
步骤二:点击
web
服务扩展
-->
新建
web
服务扩展
.
步骤三:
扩展名
-->php,
然后添加
步骤四:找到
php.exe
的路径添加上去。
步骤五:
确定就可以了!