php中一个完整表单处理实现代码


Posted in PHP onNovember 10, 2011

一个完整表单处理
下面我们将创建一个复杂的表单,代码如下所示。

<form action="someform.php" method="post"> 
<table width="541" border="0"> 
<tr> 
<td width="26%">姓名:</td> 
<td width="74%"><input type="text" name="username" value="raymond" id="username"/></td> 
</tr> 
<tr> 
<td>密码:</td> 
<td><input type="password" name="password" maxlength="10" id="password"/></td> 
</tr> 
<tr> 
<td>年龄:</td> 
<td> 
<select name="age"> 
<option value=">16">小于16</option> 
<option value="16-30" selected>16-30</option> 
<option value="31-50">31-50</option> 
<option value="51-80">51-80</option> 
</select> 
</td> 
</tr> 
<tr> 
<td valign="top">自我介绍:</td> 
<td><textarea name="intro" rows="3" cols="50" id="intro">请输入您的自我介绍</textarea></td> 
</tr> 
<tr> 
<td><br /> 
体育爱好: </td> 
<td><input type="radio" name="fave_sport" value="tennis" checked> 
网球 
<input type="radio" name="fave_sport" value="football"> 
足球 
<input type="radio" name="fave_sport" value="baseball"> 
篮球 
<input type="radio" name="fave_sport" value="polo"> 
保龄球 </td> 
</tr> 
<tr> 
<td> 开发语言:</td> 
<td><input name="from" type="hidden" id="from" value="注册表单"> 
<input type="checkbox" name="languages[]" value="php" checked id="languages[]"> 
php 
<input type="checkbox" name="languages[]" value="java" id="languages[]"> 
java 
<input type="checkbox" name="languages[]" value="perl" id="languages[]"> 
perl 
<input type="checkbox" name="languages[]" value="cpp" id="languages[]"> 
c++ 
<input type="checkbox" name="languages[]" value=".net" id="languages[]"> 
.NET 
<input type="checkbox" name="languages[]" value="delphi" id="languages[]"> 
delphi </td> 
</tr> 
<tr> 
<td valign="top"><br> 
<label> 开发工具:</label></td> 
<td><select name="develop_ide[]" size="5" multiple id="develop_ide[]"> 
<option value="ZDE" selected>Zend Studio</option> 
<option value="Eclipse">Eclipse</option> 
<option value="Editplus">Editplus</option> 
<option value="Ultraedit">Ultraedit</option> 
<option value="Other">Other</option> 
</select></td> 
</tr> 
<tr> 
<td valign="top"> </td> 
<td><input type="submit" name="btn_submit" value="提交"/></td> 
</tr> 
</table> 
</form>

该表单包括了常用表单元素:单行文本框、多行文本框、单选项(radio)、多选项(checkbox),以及多选菜单。下面进行详细的说明。
maxlength是与密码文本框关联的属性,它限制用户输入密码的最大长度为10个字符。
age列表框是列表菜单,它的命名属性下都有自己的值供选择。selected是一个特定的属性选择元素,如果某个option附加有该属性,在显示时就把该项列为第一项显示。
intro文本框中的内容,按照rows和cols显示文字、行和列宽。
fave_sport是一组单选按钮(radio),我们要按组命名元素名称,比如这一组单选按钮都叫做fave_sport,用户只可选择一个,发送脚本端也只存在一个值。
和单选项一样,所有多选项成员也须有同名的属性,而属性名称需要添加括号[],这样就把多选项的值以数组形式发送给PHP,languages就是这种形式。
checked标签是指单选项和多选项中的某个值,默认已经被选择。

上面表单的显示画面如图5-3所示。

php中一个完整表单处理实现代码

因为上面HTML中的form表单使用的是POST方法传递数据,所以用户提交的数据会保存到$_POST或$_REQUEST的超级全局数组中,我们根据$_POST数组中的值就可以处理提交的数据。

将上面表单中数据提交到someform.php脚本,该脚本的处理逻辑如下:

//通过判断按钮的变量名是否在$_POST中定义,如果有表示该表单已提交 
if(isset($_POST["btn_submit"])){ 
if (empty($_POST['username'])){ 
echo "您没有输入用户名"; 
exit(0); 
} 
if (empty($_POST['password'])){ 
echo "您没有输入密码: "; 
exit(0); 
} 
echo "您的用户名: ".$_POST['user_name']." 
"; 
echo "您的密码(明文): ".$_POST['password']." 
"; 
echo "您的年龄: ".$_POST['age']." 
"; 
if (!empty($_POST['languages'])){ 
echo "您选择的语言为:"; 
//处理用户选择兴趣的checkbox按钮产生的数组 
foreach ($_POST['languages'] as $lang){ 
echo $lang. " "; 
} 
} else { 
echo "您没有输入任何兴趣爱好"; 
} 
if (!empty($_POST['develop_ide'])){ 
echo "您使用的开发工具为:"; 
//处理用户多选开发工具菜单产生的数组 
foreach ($_POST['develop_ide'] as $ide){ 
echo $ide. " "; 
} 
} else { 
echo "您没有选择开发工具"; 
} 
echo "您的自我介绍: ".nl2br($_POST['intro'])."<br />";//nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />) 
"; 
echo "网页隐藏值(通过hidden标签值传递): ".$_POST['from']." 
"; 
} 
?>

说明:使用POST方式提交表单,通过HTTP协议的header部分传递表单数据,理论上数据的大小无上限。不过,在使用PHP进行POST提交时,文件大小受PHP配置文件(php.ini)限制,我们可以修改php.ini文件中的post_max_size参数,可将默认的2M字节,修改为自己需要的大小,但由于HTTP协议的特性,这个值不宜设置过大,最大以8M为宜。
PHP 相关文章推荐
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
PHP下10件你也许并不了解的事情
Sep 11 PHP
php daodb插入、更新与删除数据
Mar 19 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
php适配器模式介绍
Aug 14 PHP
php获取目标函数执行时间示例
Mar 04 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
php array_filter除去数组中的空字符元素
Jun 21 #PHP
php empty() 检查一个变量是否为空
Nov 10 #PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
Nov 10 #PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
Nov 10 #PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 #PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 #PHP
PHP中其实也可以用方法链
Nov 10 #PHP
You might like
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
js类 from qq
2006/11/13 Javascript
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
2018/12/11 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
Python import自定义模块方法
2015/02/12 Python
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
weblogic面试题
2016/03/07 面试题
售后服务经理岗位职责范本
2014/02/22 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
Pygame Event事件模块的详细示例
2021/11/17 Python
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL