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之PHP语法学习笔记1
Dec 17 PHP
php XMLWriter类的简单示例代码(RSS输出)
Sep 30 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
Jun 24 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
php实现mysql数据库分表分段备份
Jun 18 PHP
PHP中余数、取余的妙用
Jun 29 PHP
Zend Framework实现将session存储在memcache中的方法
Mar 22 PHP
Yii开启片段缓存的方法
Mar 28 PHP
PHP laravel中的多对多关系实例详解
Jun 07 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 09 PHP
PHP7变量处理机制修改
Mar 09 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到MongoDB简易对照表的详解
2013/06/03 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
PHP运行模式汇总
2016/11/06 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
微信跳一跳游戏python脚本
2020/04/01 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
python代码过长的换行方法
2018/07/19 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
小学毕业感言150字
2014/02/05 职场文书
税务干部鉴定材料
2014/02/11 职场文书
投资入股合作协议书
2014/10/28 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
刑事申诉状范文
2015/05/20 职场文书
运动员入场词
2015/07/18 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
工作自我评价范文
2019/03/21 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android
在 Python 中利用 Pool 进行多线程
2022/04/24 Python