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 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
第十三节--对象串行化
Nov 16 PHP
PHP parse_url 一个好用的函数
Oct 03 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
May 13 PHP
PHP实现的MongoDB数据库操作类分享
May 12 PHP
PHP速成大法
Jan 30 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
PHP文件上传类实例详解
Apr 08 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
PHP微信公众号开发之微信红包实现方法分析
Jul 14 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
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
python开根号实例讲解
2020/08/30 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
"引用"与多态的关系
2013/02/01 面试题
网络安全方面的面试题
2015/11/04 面试题
学习新党章思想汇报
2014/01/09 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
小学新教师个人总结
2015/02/05 职场文书
培训心得体会怎么写
2016/01/25 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
python调试工具Birdseye的使用教程
2021/05/25 Python