分享
 
 
 

PHP初学者头疼问题总结!

王朝php·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

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\temp

【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直接发送到对方email服务器而不用转发服务器

【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的路径添加上去。

步骤五: 确定就可以了!

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

【10】

有时候sql语句不起作用,对数据库操作失败

最简便的调试方法,echo那句sql,看看变量的值能得到不

【11】include和require的区别

两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出

据我测试,win32平台下它们都是先包含后执行,所以被包含文件里最好不要再有include或require语句,这样会造成目录混乱。或许*nux下情况不同,暂时还没测试

如果一个文件不想被包含多次可以使用include_once或require_once## 读取,写入文档数据

function r($file_name) {

$filenum=@fopen($file_name,"r");

@flock($filenum,LOCK_SH);

$file_data=@fread($filenum,filesize($file_name));

@fclose($filenum);

return $file_data;

}

function w($file_name,$data,$method="w"){

$filenum=@fopen($file_name,$method);

flock($filenum,LOCK_EX);

$file_data=fwrite($filenum,$data);

fclose($filenum);

return $file_data;

}

【12】isset()和empty()的区别

两者都是测试变量用的

但是isset()是测试变量是否被赋值,而empty()是测试一个已经被赋值的变量是否为空

如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示

如果一个变量被赋空值,$foo=""或者$foo=0或者 $foo=false,那么empty($foo)返回真,isset($foo)也返回真,就是说赋空值不会注销一个变量。

要注销一个变量,可以用 unset($foo)或者$foo=NULL

【13】mysql查询语句包含有关键字

php查询mysql的时候,有时候mysql表名或者列名会有关键字

这时候查询会有错误。例如表名是order,查询时候会出错

简单的办法是sql语句里表名或者列名加上`[tab键上面]来加以区别

例如select * from `order`

【14】通过HTTP协议一次上传多个文件的方法

有两个思路,是同一个方法的两种实现。具体程序还需自己去设计

1,在form中设置多个文件输入框,用数组命名他们的名字,如下:

<form action="" method=post>

<input type=file name=usefile[]>

<input type=file name=usefile[]>

<input type=file name=usefile[]>

</form>

这样,在服务器端做以下测试

echo "<pre>";

print_r($_FILES);

echo "</pre>";

1,在form中设置多个文件输入框,但名字不同,如下:

<form action="" method=post>

<input type=file name=usefile_a>

<input type=file name=usefile_b>

<input type=file name=usefile_c>

</form>

在服务器端做同样测试:

echo "<pre>";

print_r($_FILES);

echo "</pre>";

posted at 13:55:43 on 02/18/04 by sadly - Category: PHP常见问题

[上一篇] [下一篇]

用户评论

百年孤独 wrote:

我想问一下:echo""中还要插入""怎么办?

我已经试用了'' 好像不行!

02/18/04 22:00:44

百年孤独 wrote:

请问斑竹

echo "<meta http-equiv='refresh' content='0;url=index.php'>";

可以在哪里找到他的具体说明阿?

02/18/04 22:41:46

sadly wrote:

\" 就可以了

02/19/04 08:41:12

aaa wrote:

唉,写的很好,xltxlm那篇也很好,可是初学者一般都不看并且自己不翻手册,不上网搜,不找前面帖子,而直接提问,弄得论坛里面满眼望去都是低级问题,真是郁闷

02/20/04 04:28:25

事实 wrote:

我想不回帖都难。

redhat中默认php的全局变量是关闭的,我知道了。谢谢,我是菜鸟!

02/21/04 01:41:44

topin wrote:

真的要谢谢你,让我对session的配置又了解的更深了

02/22/04 00:50:02

mike wrote:

register_globals = on 在php.ini中已经设置了,而且apache也重起了,在phpinfo()还是关闭,郁闷ing........

02/22/04 21:16:21

veteran wrote:

受益非浅

02/25/04 13:13:49

秀津 wrote:

刚开始的时候我也是FAQ,多来几次就学会自己翻手册,找资料了;文章里列出来的东西有不少自己也从无数失败中总过,真是感慨

03/06/04 11:40:54

chro wrote:

我在2003 IIS6下装PHP很顺利呀,装过三台服务器了

03/08/04 20:35:03

zhs227 wrote:

在Win2003 Enterprise Edition下面用ISAPI方式安装php我没有遇见什么问题。我的php版本是4.3.2。感觉安装过程很顺利。

03/14/04 12:16:55

ILIKEPHP wrote:

header already sent

能对HEADER作个详细讲解就好了,

虽然看了不少关于它的文章但到现在还是一知半解。

在什么情况下用HEADER?

怎样正确使用?

03/14/04 14:58:39

cccc wrote:

又是一个把名字跟字符串弄混的人

abc是名字

"abc"是字符串

03/26/04 15:11:20

神龙 wrote:

请问下一oracle8数据库是个什么, 能干什么,我在好多地方看到他就是不了解,请解释一下

03/27/04 11:19:34

小黑龙 wrote:

恩,很不错。

不过能不能再给举几个比较好的例子呢?

不胜感激!

03/27/04 13:53:14

小黑龙 wrote:

恩,很不错。

不过能不能再给举几个比较好的例子呢?

不胜感激!

03/27/04 13:53:17

勇犀之弓 wrote:

感谢!正为问题所苦,偶然间发现贵站,感激不尽~

03/28/04 10:23:34

天堂之心 wrote:

里边的问题偶都曾经碰到过

在无数次失败之后终于解决。

今日偶然看到此帖,意识到交流的重要性!

今后决定多上论坛,多进行交流!

照顾新人,学习前辈!

呵呵

04/01/04 10:27:05

牛牛 wrote:

资料是需要经常整理的,感谢那些辛勤劳动的朋友!

04/03/04 12:59:55

xstart wrote:

session在iis下不能正常工作不只是一个文件路径的问题,php必须以isapi的形式安装,以cgi方式安装当在新的页面执行session_start的时候会重新创建一个新的session,而不能把以前的session带过来,所以session基本上不能起作用。这个问题当时折磨了我很久,网上一搜遇到同样问题的还真不少,回答一般是说路径问题,或者是需要设置成浏览器传递session的有关参数,或者用coocie,都没到点子上去,后来在php的官方网站上发现很早以前就有这个bug的提交,但一直没有得到修订,php各版本都有这个问题

如果大家有兴趣可以自己去试一下

04/09/04 23:18:57

阿本 wrote:

为什么在win32下的加密函数不能使用呢?返回的信息说,不支持win32啊。请求帮助。我是菜鸟,~!~

04/11/04 20:52:10

black wrote:

太感谢了

04/13/04 16:10:26

讨吃鬼 wrote:

老大。。。。。服了。。。

差点苦死我啊。。。鬼知道PHP这东西传个变量还要配置啊。。。我以前学过点ASP,那里会想到能有这种问题啊。。我瞅着我那三行半程序整整研究了一天半啊。。。变量就是不发过去。。。差点灰心。。。。唉。。。

多谢高人指点。。。

04/13/04 17:18:04

急死了 wrote:

我怎么用$_post传递变量还是不行啊。请问这个程序怎么不能传递变量,谢谢给我解答!!我都急死了,谢谢大虾了。

aa.htm

<form action="aa.php" method="post">

<input type=text name="db">

<input type=submit value="提交">

</form>

aa.php

<?

$db=$_post['db'];

echo '$db';

}

04/17/04 21:27:53

edifier wrote:

我是菜鸟,这是我编的程序,不过有很多错误,能告诉我错误是什么吗?~~

<?

session_start();

session_register("sess_var");

$sess_var = "Hello world!";

echo "The content of \$sess_var is $sess_var<br>";

?>

<a href = "page2.php">Next page</a>

错误是:

Warning: session_start(): open(/tmp\sess_1079d7974afa7bfca76980d1606b5124, O_RDWR) failed: No such file or directory (2) in E:\PHP and MySQL Web Development\chapter20\php25.tmp on line 3

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at E:\PHP and MySQL Web Development\chapter20\php25.tmp:3) in E:\PHP and MySQL Web Development\chapter20\php25.tmp on line 3

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at E:\PHP and MySQL Web Development\chapter20\php25.tmp:3) in E:\PHP and MySQL Web Development\chapter20\php25.tmp on line 3

04/20/04 16:41:25

karlos wrote:

thank you

04/20/04 19:43:26

随便说说 wrote:

百年孤独 wrote:

请问斑竹

echo "<meta http-equiv='refresh' content='0;url=index.php'>";

可以在哪里找到他的具体说明阿?

02/18/04 22:41:46

就是刷新的意思,content='0;url=index.php'>";就是立刻刷新.0换成2就代表等2秒后刷新,URL表示刷新后要访问的网页

04/23/04 22:57:52

badly wrote:

高手就是高手呀!!!

佩服,佩服!!

我也看着那么点点程序研究了一天,

我开始就是没有想明白怎么以前能行的东西,现在就不行了呢,

原来如此!在此谢过高手了!!!

04/25/04 18:44:36

JIQIANGZHU wrote:

<form name="f1" enctype="multipart/form-data" action="imgsave.php" method="post">

在这种情况下,使用$_POST好像得不到参数阿,哪位朋友帮忙解决以下

05/11/04 17:59:40

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有