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 相关文章推荐
ip签名探针
Oct 09 PHP
5.PHP的其他功能
Oct 09 PHP
如何对PHP程序中的常见漏洞进行攻击
Oct 09 PHP
jQuery+php实现ajax文件即时上传的详解
Jun 17 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
Nov 17 PHP
php生成RSS订阅的方法
Feb 13 PHP
php实现TCP端口检测的方法
Apr 01 PHP
php获取twitter最新消息的方法
Apr 14 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP+Redis开发的书签案例实战详解
Jul 09 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
javascript json2 使用方法
2010/03/16 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
javascript实现yield的方法
2013/11/06 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
Javascript函数的参数
2015/07/16 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
用Python进行行为驱动开发的入门教程
2015/04/23 Python
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
Python使用turtule画五角星的方法
2015/07/09 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
教学器材管理制度
2014/01/26 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
Linux安装apache服务器的配置过程
2021/11/27 Servers