7---php表单

liang86 贡献于2014-08-07

作者 zzc  创建于2013-03-26 13:38:31   修改者  修改于2013-06-23 12:33:55字数6286

文档摘要:PHP表单处理表单的基本知识表单标签for标签用于为用户输入创建HTML表单。表单能够包含input元素,比如文本字段、复选框、单选框、提交按钮等等。
关键词:

PHP表单处理 表单的基本知识 1、 表单标签
标签用于为用户输入创建 HTML 表单。 表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。 表单还可以包含 menus、textarea、fieldset、legend 和 label 元素。 表单用于向服务器传输数据。 标签 必要属性: Action,规定当表单提交时,向何处发送表单数据。 可选属性: Method,规定如何发送表单数据。 Name,规定表单的名称。 Enctype,规定数据发送到服务器之前如何编码。 2、文本框,用户的输入 定义: 服务器使用:$_POST[‘wenbenkuang’]; 注意事项:文本框是最常见的表单元素,是一个名对应一个值的形式。 3、密码框, 提供用户输入密码的区域。 定义: 服务器使用:$_POST[‘mimakuang’]; 注意事项:密码框是把文本框中的明文使用密文来表示,增加数据安全性,但不能检查输入是否正确,所以一班会提供两个密码框,来验证用户输入的密码的一致。 4、隐藏域, 提供不可见的表单元素。 定义: 服务器使用:$_POST[‘yincangyu’]; 注意事项:隐藏域是在页面上看不到的表单元素,我们通常使用此种方式传递id类的值。 5、复选框,提供选取多个的操作。 定义: 服务器使用:$_POST[‘fuxuankuang’];值是一个数组。 注意事项:我们通过把name属性设为同一个数组的方式放置一组复选框的。其中的checked属性规定复选框的初始状态是否被选中。 6、单选框,提供在多者选其一的操作。 定义: 服务器使用:$_POST[‘danxuankuang’];值是一个数,不是数组。 注意事项:我们通过把name属性设为相同的方式放置一组单选框的。其中的checked属性规定单选框的初始状态是否被选中。 7、文本域,提供一个大量文字输入区域。 定义: PHP表单处理 服务器使用:$_POST[‘wenbenyu”]; 注意事项:文本域是一个双标签,我们可以通过cols和rows属性文本域的可见列和行数。控制他的宽高。当我们需要输入一大段文字的时候需要用到文本域。 8、列表,提供一个有限列表供选择。 定义: 服务器使用:$_POST[“liebiao”];你选中哪个,他的值就为哪个option的value属性的值。 注意事项:select是一个双标签。他的每个选项通过
A、输入为空的验证。 Function form_check(){ //取得文本框的值 Var wenbenkuang_value = document.getElementById(‘wenbenkuang’).value; PHP表单处理 //对值进行判断如等于空,则返回false,此表单被阻止提交。 If(wenbenkuang_value == ‘’){ Return false; }Else{ Return true; } } 当表单被提交时我们触发form_check()方法,先通过Id取得页面元素的值,之后判断是否为空。为空,则返回false,阻止表单提交。 B、输入长度验证 Function form_check(){ //取得文本框的值 Var wenbenkuang_value = document.getElementById(‘wenbenkuang’).value; //对值进行判断如长度小于6,则返回false,此表单被阻止提交。 If(wenbenkuang_value.length < 6){ Return false; }Else{ Return true; } } 当表单被提交时我们触发form_check()方法,先通过Id取得页面元素的值,之后判断长度的范围。不符合标准则返回false,阻止表单提交。 C、正则验证,输入的值是否包含3个连续的整数,如a123bc。 Function form_check(){ //取得文本框的值 Var wenbenkuang_value = document.getElementById(‘wenbenkuang’).value; Var patt = new RegExp(“[0-9]{3}”); //对值进行判断。通过正则对象的test方法判断, //如果包含此类字符串则test方法返回true,否则test返回false。 //我们通过test的返回值来判断是否符合标准。 //若不符合则返回false,此表单被阻止提交。 If(!patt..test(wenbenkuang_value)){ Return false; }Else{ Return true; } } D、验证密码,必须为字母和数字混合。 //6-18位,并且是字母和数字的组合 PHP表单处理 var psd1 = document.getElementsByName('psd1')[0].value; var psd2 = document.getElementsByName('psd2')[0].value; var reg1 = /^[0-9]{6,18}$/i; var reg2 = /^[a-z]{6,18}$/i; var reg3 = /^[a-z0-9]{6,18}$/i; if(reg1.test(psd1)){ alert("密码不能全部是数字"); return false; } else if(reg2.test(psd1)){ alert("密码不能全部是字母"); return false; } else { if(!(reg3.test(psd1))){ alert("密码不合法"); return false; } } 本例演示了一个最简单的正则验证,正则的操作大家应该在javascript单元是有了解,此处只是把javascript和html表单一起使用。 通过以上三个小例子,我们可以看到,javascript进行浏览器端验证的基本形式是先取得要判断的值,之后针对这个值进行操作。如果符合我们的要求,则表单被提交,否则的话我们通过给form标签的onsubmit事件一个false的返回值来阻止表单的提交。 不但如此,我们还可以通过不同的动作来触发数据验证方法,比如说onblur,失去焦点时立刻验证。只不过,我们想阻止表单提交,最直接的方式还是返回给onsubmit事件一个false值,而此事件是只有在form标签上可用。 JS前台验证例子: function is_email($str){ //检验email return preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/", $str); } function is_url($str){ //检验网址 return preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"]) *$/", $str); } function is_qq($str){ //检验qq return preg_match("/^[1-9]\d{4,8}$/", $str); } function is_zip($str){ //检验邮编 return preg_match("/^[1-9]\d{5}$/", $str); } function is_idcard($str){ PHP表单处理 //检验身份证 return preg_match("/^\d{15}(\d{2}[A-Za-z0-9])?$/", $str); } function is_mobile($str){ //检验是否是手机 return preg_match("/^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/", $str); } function is_phone($str){ //检验是否为电话 return preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/", $str); } function is_safe($str){ return (preg_match("/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|. {0,5})$|\s/", $str) != 0); } 服务器端PHP验证 表单提交到逻辑处理页,该页面根据表单发送信息的方式使用$_GET/$_POST/$_REQUEST接收。为避免客户端脚本错误,而导致的异常提交或者是用户的非法提交(致使前台的JS验证失效,提交过来的非法数据)。需要在服务器端也做信息验证。判断用户名和密码等各项是否符合要求,如果有一项不符合,则页面返回来源页。 A、preg_match(string pattern, string subject [, array matches [, int flags]]) 进行正则表达式匹配,在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容 B、Preg_match_all(string pattern, string subject, array matches [, int flags]) 进行全局正则表达式匹配, C、Preg_replace(mixed pattern, mixed replacement, mixed subject [, int limit]) 执行正则表达式的搜索和替换,在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档