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

 

今天为大家奉上令PHP初学者头疼问题大总结,下面提出的14个问题希望对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>";

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 文件
, 变量
, 错误
, 一个
或者
内务条令、条令条例、人民警察内务条令、队列条令、人民警察纪律条令,以便于您获取更多的相关知识。

时间: 2024-12-11 02:07:13

十四条令PHP初学者头疼问题大总结的相关文章

2010年E3十四款优秀参展网游大盘点

多玩网讯(编译/流川枫)本年度的E3大展已于上周结束了,今年暴雪没有参展,但其他许多开发商都参加了.鉴于今年E3上各游戏厂商发布的游戏预告.新闻和视频实在是太多了,我们无法对其一一进行介绍.国外媒体IGN为我们挑选了几款比较有代表性的游戏并做了简要介绍,虽然并未涵盖参展的所有网游,不过从中你可以了解一下不同类型游戏的一些最新消息,甚至可能还包括一些你之前不知道甚至完全没听过的优秀游戏作品.让我们一起来看一下吧,以下为原文翻译: 1.<特工代理>(The Agency) 开发商:索尼在线娱乐西雅

第十四回(二):外战折戟再图雪耻 石路徜徉终是难忘【林大帅作品】

(二)第十四回:外战折戟再图雪耻 石路徜徉终是难忘 单说这第二日课上,林二便被众人嘲笑,都说不该让哲理占了便宜.这功课输人,骑射输人,这蹴球万不可再输.刘鹏,凯宏等都调笑所丢一城,势必林二通敌所致.阿四便道:"非也,此乃阿海乌龙球,"林二并不理会,只看那<体坛>里欧洲战报.不意这"乌龙"二字从此便流传了出来,所熟识的,皆呼此号.林二哭笑不得,只得接受这外号,日后费了半天劲跟莉莉解释这名号.忽见那廊前,一高三学长,与阿仁闲语.林二便知这明日文会内战,当日学

十四个方法提高博客的页面访问量

看到别人翻译的一篇文章,是讨论如何提高博客访问量的,提到的有几个方法蛮有新意,不过不赞成原文的"在聚合中只输出摘要"的方法. 十四个方法提高博客的页面访问量 作者:Darren Rowse,翻译:Lucifer 如何增加Blog的访问量已经是老生长谈了,其实对于blogger来说另一个统计数也至关重要:页面浏览量. 很多的网站流量统计服务会同时提供这两项数据- "访问量"计数的是访问者的数目,而页面浏览量算的则是这些访问者所浏览的你blog上的网页的数目. 对不同b

提高博客的页面访问量的十四个方法

原文: to Increase a Blog's Page Views 作者:Darren Rowse,翻译:Lucifer 十四个方法提高博客的页面访问量 如何增加Blog的访问量已经是老生长谈了,其实对于blogger来说另一个统计数也至关重要:页面浏览量. 很多的网站流量统计服务会同时提供这两项数据- "访问量"计数的是访问者的数目,而页面浏览量算的则是这些访问者所浏览的你blog上的网页的数目. 对不同blog来说,每个访问者的页面浏览量会有所不同,但希望这个数字可以大一总不是

十四种Java开发工具点评

在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美的,就算是老鸟也很难做出选择.在本文中我简要介绍了常见的十四种Java开发工具的特点,管中窥"器",希望能对大家有所帮助. 1.JDK (Java Development Kit) 2.Java Workshop 3.NetBeans 与Sun Java Studio 5 4.Borlan

java初学者,求大神指点

问题描述 java初学者,求大神指点 int i = 0:int sum:while(i<100) { sum =i; sum+=i; i++; }System.out.println(sum); 这是主方法里面运行的代码,错误信息提示输出行的sum未初始化,我不太懂,为什么,求高手指点 解决方案 给sum赋值就ok了 解决方案二: 赋初值:int sum = 0; 解决方案三: sum是局部变量吧,如果是全局变量的话就不用赋初值,会有默认值的,但是 局部变量在使用前必须初始化或者赋值 解决方案

[JAVA]十四种Java开发工具点评_JSP编程

  在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美的,就算是老鸟也很难做出选择.在本文中我简要介绍了常见的十四种Java开发工具的特点,管中窥"器",希望能对大家有所帮助. 1.JDK (Java Development Kit) 2.Java Workshop 3.NetBeans 与Sun Java Studio 5 4.Borl

Henry的VB.NET之旅(十四)—动态关联事件与处理程序

程序|动态 Henry的VB.NET之旅(十四)-动态关联事件与处理程序 韩睿 "要解释新的事件处理程序的方法,我们需要先说几个重要的问题."大李开始严肃起来,我也只得挪动一下身子,表现出正襟危坐的架势. "我们首先讨论一下事件是怎么产生的.事件是对象发送的消息,以发信号通知操作的发生.操作可能是由用户交互,例如鼠标单击引起的,也可能是由某些其他的程序逻辑触发的.引发事件的对象叫做事件发送方(啊,听到这,Henry突然明白了事件处理程序中的第一个参量为什么叫Sender了,就

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十四)

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十四)制作主角属性面板及加点器 游戏中会使用大量的菜单面板,而这些面板往往都带有选项卡.如果用Silverlight工具中的TabControl,则需要通过复杂的xaml重写模板来实现自定义样式,这一点时常让开发者头疼,毕竟界面的东西应该属于美工的范畴,这也是我所发现在目前Silverlight中唯一一处只能通过xaml而无法用代码实现的地方.当然,如果您对此特别感兴趣,同样可以到http://www.c