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 相关文章推荐
关于mysql 字段的那个点为是定界符
Jan 15 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
PHP批量检测并去除文件BOM头代码实例
May 08 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
Dec 16 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
PHP实现递归无限级分类
Oct 22 PHP
php使用curl代理实现抓取数据的方法
Feb 03 PHP
php图像验证码生成代码
Jun 08 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
Jun 19 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
JAVA/JSP学习系列之二
2006/10/09 PHP
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
网上签名寄语活动留言
2014/01/18 职场文书
销售代理协议书
2014/09/30 职场文书
优秀党员事迹材料
2014/12/18 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
话题作文之诚信
2019/11/28 职场文书
带你了解Java中的ForkJoin
2022/04/28 Java/Android