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版)
Oct 09 PHP
也谈php网站在线人数统计
Apr 09 PHP
深入php socket的讲解与实例分析
Jun 13 PHP
php检测数组长度函数sizeof与count用法
Nov 17 PHP
php5.3不能连接mssql数据库的解决方法
Dec 27 PHP
PHP中实现获取IP和地理位置类分享
Feb 10 PHP
百度地图API使用方法详解
Aug 25 PHP
带你了解PHP7 性能翻倍的关键
Nov 19 PHP
php PDO异常处理详解
Nov 20 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
Laravel向公共模板赋值方法总结
Jun 25 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计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
基于jquery &amp; json的省市区联动代码
2012/06/26 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
python定时执行指定函数的方法
2015/05/27 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
python 循环数据赋值实例
2019/12/02 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
质检部岗位职责
2013/11/11 职场文书
《我不是最弱小的》教学反思
2014/02/23 职场文书
煤矿安全承诺书
2014/05/22 职场文书
活动总结范文
2014/08/30 职场文书
开除通知书范本
2015/04/25 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL