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的宝库目录--PEAR
Oct 09 PHP
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
PHP下用rmdir实现删除目录的三种方法小结
Apr 20 PHP
PHP has encountered an Access Violation 错误的解决方法
Jan 17 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
php+Ajax无刷新验证用户名操作实例详解
Mar 04 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
Mar 14 PHP
imagettftext() 失效,不起作用
Mar 09 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
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
php服务器的系统详解
2019/10/12 PHP
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
如何高效使用Python字典的方法详解
2017/08/31 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
打架检讨书2000字
2014/02/22 职场文书
预备党员表决心书
2014/03/11 职场文书
经济贸易系求职信
2014/08/04 职场文书
党性观念心得体会
2014/09/03 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
领导视察通讯稿
2015/07/18 职场文书
作文之亲情600字
2019/09/23 职场文书
Python道路车道线检测的实现
2021/06/27 Python
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers
Oracle中日期的使用方法实例
2022/07/07 Oracle
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS