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 相关文章推荐
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
php获取某个目录大小的代码
Sep 10 PHP
php全排列递归算法代码
Oct 09 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 PHP
PHP实现通用alert函数的方法
Mar 11 PHP
谈谈 PHP7新增功能
Dec 16 PHP
mysql alter table命令修改表结构实例详解
Sep 24 PHP
php简单实现文件或图片强制下载的方法
Dec 06 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 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
第七节 类的静态成员 [7]
2006/10/09 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
JMenuTab简单使用说明
2008/03/13 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
matplotlib实现区域颜色填充
2019/03/18 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
详解Python IO编程
2020/07/24 Python
电大物流学生的自我评价
2013/10/25 职场文书
夜大自我鉴定
2013/10/31 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
校园绿化美化方案
2014/06/08 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python