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 相关文章推荐
php中文本操作的类
Mar 17 PHP
PHP中文分词的简单实现代码分享
Jul 17 PHP
php正则表达式使用的详细介绍
Apr 27 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
Yii操作数据库的3种方法
Mar 11 PHP
CodeIgniter中使用cookie的三种方式详解
Jul 18 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
PHP基于单例模式编写PDO类的方法
Sep 13 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php文件后缀不强制为.php的实操方法
Sep 18 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 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 加密与解密的斗争
2009/04/17 PHP
PHP 日期加减的类,很不错
2009/10/10 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
解析strtr函数的效率问题
2013/06/26 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
js中iframe调用父页面的方法
2014/10/30 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
python 的列表遍历删除实现代码
2020/04/12 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
python实现点对点聊天程序
2018/07/28 Python
python实现FTP循环上传文件
2020/03/20 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
中专生职业生涯规划书范文
2013/12/29 职场文书
班组长竞聘书
2014/03/31 职场文书
会计演讲稿范文
2014/05/23 职场文书
红色经典电影观后感
2015/06/18 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书