`

十四条令PHP初学者头疼问题大总结

阅读更多

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>";

 

2、在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>";

10
4
分享到:
评论
4 楼 卖夹饼的 2010-04-20  
6、初装的mysql 如果没有设置密码,应该使用
update mysql.user set password="yourpassword" where user="root"

好像记得这里的密码是加密后的,不知道能不能直接去更新,我没有试过!
3 楼 七月十五 2010-04-15  
这些资料实在是太老了
2 楼 justjavac 2010-04-14  
goat18 写道
不错。。学习了。。
有些问题还是满重要的。。省不少时间了。。

学习嘛,基础还是很重要的。多看看前人的错误,自己就不会再犯了。
1 楼 goat18 2010-04-14  
不错。。学习了。。
有些问题还是满重要的。。省不少时间了。。

相关推荐

    RoHS豁免条令总结.pdf

    RoHS豁免条令的总结对于我们了解和应用RoHS指令至关重要,以下是关于RoHS豁免条令的相关知识点: 1. 电子电器产品中特定物质的豁免标准 RoHS豁免条令列出了对特定有害物质的豁免标准,例如小型日光灯中的汞含量不得...

    “条令学习学习月”活动总结范文(3篇).doc

    “条令学习学习月”活动总结范文(3篇).doc

    “条令学习学习月”活动总结模板(3篇).doc

    “条令学习学习月”活动总结模板(3篇).doc

    条令条令学习心得体会.doc

    条令条令学习心得体会.doc

    网络安全相关法律条令(总结使用)

    该法于2016年11月7日由第十二届全国人大常委会通过,其主要内容涉及以下几个方面: 1. **总则**:网络安全法明确了法律的制定目的是保障网络安全,促进信息化健康发展,维护网络空间主权、国家安全和公共利益。它...

    学条令强管理铸警魂演讲稿.doc

    学条令强管理铸警魂演讲稿.doc

    rohs豁免条令总结

    了解并掌握RoHS豁免条令对于电子电气产品制造商、供应链管理者、标准制定者和相关研究人员来说至关重要,可以帮助他们合规经营,同时推动更环保的技术创新。通过深入研读这份"RoHS豁免条令总结",读者将能够全面理解...

    (完整版)队列条令考试题.DOCX.pdf

    《队列条令》是军事训练中的重要组成部分,主要规范了军队中人员的队列动作、行进方式、指挥规则以及礼仪礼节等。以下是对队列条令中部分知识点的详细解释: 1. 队列指挥位置:在停止间,指挥员应位于队列中央前;...

    消防学习新条令的自我评价.docx

    总之,消防员在对新条令进行自我评价的过程中,展现了对自己工作和学习的深刻反思与认真总结。他们既肯定了自己在各方面取得的进步,也清醒地意识到了存在的不足。通过这种自我剖析,消防员能够更有针对性地进行自我...

    XX物业公司保安部纪律条令.docx

    XX物业公司保安部纪律条令.docx

    执勤战斗条令和作战训练安全题库及答案.doc

    执勤战斗条令和作战训练安全题库及答案.doc

    消防员个人年终工作总结工作总结.docx

    然而,工作总结中也提到存在的不足,如业务理论知识仍需深化,工作中可能存在不够细致的问题,对工作的重视程度和积极性有待提高,作风纪律的自我要求可以更严格,以及需要减少地方大学生习气,增强发现问题和解决...

    niit-sm3考试截图与文章及答案

    通过这些例题和答案,学习者可以巩固对ASP.NET、VB.NET和XML的理解,提高实际应用能力。在准备考试时,理解并熟练掌握这三个技术的基本概念和使用方法至关重要,因为它们在现代Web开发中扮演着重要角色。此外,实战...

    条令条例考试最新完整版题库

    条令条例试题及答案内务条令试题一答案一单项选择1中国人民解放军的内务建设必须A的性质A坚持人民军队B全心全意为人民服务C官兵一致军民一致军政一致D实行政治民主经济民主军事民主2公民入伍后必须进行AA宣

    消防员个人工作总结.pdf

    这篇工作总结主要涵盖了消防员在工作中的几个关键方面,包括政治理论学习、执勤业务训练、部队管理、条令条例落实、经验总结和个人能力提升。以下是详细的知识点解析: 1. **政治理论学习与思想觉悟**: - 消防员...

Global site tag (gtag.js) - Google Analytics