PHP入门速成(2)


Posted in PHP onOctober 09, 2006

表单处理

PHP为用户提供了众多方便易用的强大功能。在表单的处理方面,PHP能够自动地将由客户端表单发送的数据赋值给相应变量,从而极大地简化了整个表单的处理过程。

举例来说,用户建立如下表单:

< INPUT TYPE=TEXT NAME=“name” VALUE=“PETER” >

当使用PHP对上述代码进行处理时,PHP自动创建一个名为$name的变量,并将变量值“PETER”赋予该变量。

用户可以直接对PHP创建的变量进行各种操作,例如显示变量值:

echo “Hi $name!”;

或对变量值进行验证:

if ($name == “PETER”) { echo “Please check out your email.”; }

下面,我们就来看一下如何通过使用PHP创建并处理一个基本的表单。在示例当中,我们将会要求表单的填写者回答几个简短的问题,包括输入表单填写者的姓名,电子邮件地址,完成调查问卷等。

这里,我们将所要设计的页面按照功能划分成表单显示和表单处理两个功能模块。这样,用户就不必设计两个不同的页面,而只需要在同一个PHP页面中通过逻辑控制显示或处理相应的功能模块。 A. 表单显示

我们通过第一个功能模块来实现表单的显示。具体代码为:

< ?php

function display_form()

{

global $PHP_SELF;

? >

< FORM TARGET=“< ?php echo $PHP_SELF; ? >”METHOD=GET >

Name: < INPUT TYPE=TEXT NAME=“name” >< BR >

Favorite Fruit: < INPUT TYPE=RADIO NAME=“fruit” VALUE=“apple” >Apple

< INPUT TYPE=RADIO NAME=“fruit” VALUE=“orange” >Orange

< INPUT TYPE=RADIO NAME=“fruit” VALUE=“banana” >Banana

Favorite Times to Eat Fruit:

< INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“m” >Morning

< INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“n” >Noon

< INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“d” >Dinner

< INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“l” >Latenight

< INPUT TYPE=HIDDEN NAME=“stage” VALUE= “results” >

< INPUT TYPE=SUBMIT VALUE= “Thanks!” >

< /FORM >

< ?php

}

? >

上述代码中绝大多数都是创建表单所必需的HTML代码。在此,我们仅对所涉及到的PHP知识做一下简单介绍。

首先,我们来看一下代码开始处的变量$PHP_SELF。变量$PHP_SELF是PHP中一个很方便的指针,其变量值就是当前页面的URL地址。这样,我们就可以通过在随后的form标签中将TARGET的值设定为$PHP_SELF,实现由该表单页面处理表单的目的。这里,我们使用$PHP_SELF变量而不使用页面的实际地址,是因为通过使用$PHP_SELF变量,我们可以方便对编写的页面代码进行修改和移动,而不必担心在每次改动之后重新输入新的页面地址。

另外,在使用$PHP_SELF变量时,我们采用了如下方式:

global $PHP_SELF;

这表明代码中的$PHP_SELF变量为全局变量。用户在使用PHP的过程中一定要注意PHP中任何的函数变量都是局部变量。这就意味着任何函数变量的作用域都只局限于包括该变量的函数本身。即使函数外存在同名变量,变量的值也不相同。因此,如果我们没有在代码中以显式方式声明函数变量$PHP_SELF为全局变量具有全局唯一值的话,用户就会发现函数中的变量$PHP_SELF的值将会为空,而不是我们预先所期望的当前页面的URL地址。

用户可能已经注意到我们将表单复选选项的名称设置为times[]数组,而把单选选项的名称设定为fruit常规变量。这是因为单选选项只允许用户选择唯一一个正确选项,因此fruit变量的值只可能是一个字符串;相反,复选选项则允许用户做多重性选择。如果,用户希望PHP能够保存用户可能作出的所有选择的话,就需要使用数组来保存所有的可能值。按照PHP的语法规则,我们通过在变量名times后面加上方括号,使PHP知道该变量是一个数组变量而不是普通的常规变量。

最后,我们设定了一个名为stage的隐含变量,通过使用该变量,我们可以控制是否显示表单还是处理表单结果。  

PHP 相关文章推荐
PHP静态新闻列表自动生成代码
Jun 14 PHP
一个简单的网页密码登陆php代码
Jul 17 PHP
apache和php之间协同工作的配置经验分享
Apr 08 PHP
php定界符
Jun 19 PHP
php常用图片处理类
Mar 16 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
php实现购物车功能(以大苹果购物网为例)
Mar 09 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
Yii Framework框架开发微信公众平台示例
Apr 26 PHP
用PHP制作静态网站的模板框架
Oct 09 #PHP
PHP5在Apache下的两种模式的安装
Sep 05 #PHP
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 #PHP
教你IIS6的PHP最佳配置方法
Sep 05 #PHP
详细介绍:Apache+PHP+MySQL配置攻略
Sep 05 #PHP
PHP环境搭建最新方法
Sep 05 #PHP
初学者入门:细述PHP4的核心Zend
Sep 05 #PHP
You might like
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
php在线代理转向代码
2012/05/05 PHP
phpphp图片采集后按原路径保存图片示例
2014/02/18 PHP
跟我学Laravel之视图 &amp; Response
2014/10/15 PHP
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
基于js中document.cookie全面解析
2017/09/14 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
Python列表(List)知识点总结
2019/02/18 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
python中的逆序遍历实例
2019/12/25 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
四个太阳教学反思
2014/02/01 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
大学生违纪检讨书300字
2014/10/25 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server