表单正则验证及文件上传验证

表单正则验证主要是用来对表单提交信息的过滤,防止sql注入(比如登录界面),上传的文件也需要进行文件名后缀和大小进行验证,下面是一个简单的表单验证

 1 header("Content-type:text/html;charset=utf-8");
 2 $user = isset($_POST[‘user‘])?$_POST[‘user‘]:null;
 3 $password = isset($_POST[‘password‘])?$_POST[‘password‘]:null;
 4 $arr = array(‘png‘,‘gif‘,‘jpg‘);
 5 $uploads = move_uploaded_file($_FILES[‘face‘][‘tmp_name‘],‘uploads/‘.$_FILES[‘face‘][‘name‘]);
 6 $file = ‘uploads/‘.$_FILES[‘face‘][‘name‘];
 7 if($uploads){
 8
 9     echo ‘上传成功‘;
10 }
11 if(!preg_match("/^[\x{4e00}-\x{9fa5}]+$/u", $user)){
12
13     //正则检查用户名是否为全汉字组成
14     echo "用户名只能由纯汉字组成!";
15     die;
16
17 }else if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$password)){
18
19     //正则检查密码是否含有非法字符
20     echo ‘密码不能包含特殊字符!‘;
21     die;
22
23 }else if(!in_array(pathinfo($file, PATHINFO_EXTENSION),$arr)){
24
25
26     echo "文件格式不正确";
27     die;
28
29 }else{
30
31     echo ‘允许注册!‘;
32
33 }     

附常用php正则表达式:

匹配中国邮政编码:[1-9]\d{5}(?!\d)

匹配身份证:\d{15}|\d{18}

匹配ip地址:\d+\.\d+\.\d+\.\d+

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

函数:

preg_match():第一个参数为正则规则,第二个为被验证的字符串,返回布尔值

preg_replace ():对一个字符串中附和正则规则的字符进行字符替换

时间: 2024-10-08 22:21:35

表单正则验证及文件上传验证的相关文章

使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html

使用ajax提交form表单,包括ajax文件上传 前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的ajax $.ajax({ url:"${pageContext.request.contextPath}/public/testupload", type:"post", data:{username:username},

文件上传验证绕过技术总结

文件上传验证绕过技术总结 1.客户端验证绕过 很简单啦,直接使用webscarab或者burp修改一下后缀名就行. 2.服务端验证绕过-Content-type检测 若服务端检测文件类型时是检测Content-type的值,也很简单,在webscarab或者burp中修改Content-type. 如php中 if($_FILES['userfile']['type'] != "image/gif") 即是检测Content-type值. 3.服务端验证绕过-扩展名检测 a. 寻找漏网

ajax提交表单、ajax实现文件上传

ajax提交表单.ajax实现文件上传,有需要的朋友可以参考下. 方式一:利用from表单的targer属性 + 隐藏的iframe 达到类似效果, 支持提交含有文件和普通数据的复杂表单 方式二:使用jquery的$.ajax({..}), 支持提交普通表单,但不支持含有文件的复杂表单; ($.post 或 $.get底层用的都是$.ajax) 方式三:使用jquery插件ajaxFileUpload.js, 支持上传文件,但不支持提交表单 方式四:使用jquery.from.js,支持提交同时

【技术博客】Postman接口测试教程 - 环境、附加验证、文件上传测试

Postman接口测试教程 - 环境.附加验证.文件上传测试 v1.0 作者:ZBW 前言 继利用Postman和Jmeter进行接口性能测试之后,我们发现Postman作为一款入门容易的工具,其内置的一些高级功能足够帮助我们对网站进行全面的接口测试.本文首先将介绍两个比较关键的功能:环境(Environment)和附加代码(Pre-request Script和Tests),这两个功能能够帮助我们对接口进行更加复杂的验证,如验证接口返回的信息等.除此之外,本文还将介绍文件上传测试的运行方式.

使用ajax提交form表单,包括ajax文件上传

前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的ajax $.ajax({ url:"${pageContext.request.contextPath}/public/testupload", type:"post", data:{username:username}, success:function(data){ w

ajax提交表单,并且可以支持文件上传

当我们提交表单但是又不想要刷新页面的时候就可以考虑使用ajax来实现提交功能,但是这有个局限就是当有文件上传的时候是行不通的,下面借助于jquery.form可以很方便满足我们的需求. 1.表单写法: <form class="ui form error-page" id="error_page" method="post" action="{{ url('web/save/error-page') }}" enctyp

ANDROID使用MULTIPARTENTITYBUILDER实现类似FORM表单提交方式的文件上传

最近在做 Android 端文件上传,要求采用 form 表单的方式提交,项目使用的 afinal 框架有文件上传功能,但是始终无法与php写的服务端对接上,无法上传成功.读源码发现:afinal 使用了某大神写的 MultipartEntity.java 生成 form 表单内容,然而生成的内容格式不够标准,而且还存在诸多问题,如:首先将所有文件读入到内存,再生成字节流写入到 socket.那么问题来了:如果是几百MB的文件怎么办? 几番搜索,受到 这篇文章(已被我转载,但是示例代码已过期)的

文件上传漏洞演示脚本之js验证

文件上传漏洞演示脚本之js验证 0 0 716 关于文件上传漏洞,想必玩web安全的同学们都有接触,之前本站也发布过一篇文章介绍文件上传漏洞的各种绕过方法,但是只是有文档却没有演示代码,最近给公司一客户培训,就照文档中的绕过写出了相应的代码,方便我等小菜研究,此次的文章我会连续发几天都是关于如何绕过的,全都是科普文,很简单的,希望小伙伴们喜欢. 关于文件上传漏洞的文章 绕过文件上传验证 为什么文件上传表单是主要的安全威胁 js验证绕过演示代码 01 <?php 02 /** 03  * Crea

SpringMVC中文件上传的客户端验证

SpringMVC中文件上传的客户端验证 客户端验证主要思想:在jsp页面中利用javascript进行对文件的判断,完成验证后允许上传 验证步骤:1.文件名称 2.获取文件的后缀名称 3.判断哪些文件类型允许上传 4.判断文件大小 5.满足条件后跳转后台实现上传 前台界面(验证上传文件是否格式满足要求): <body> <h2>文件上传</h2> <form action="upload01" method="post"