1. 程式人生 > >表單正則驗證及文件上傳驗證

表單正則驗證及文件上傳驗證

特殊 email地址 常用 clas isset move 一個 包含 是否

表單正則驗證主要是用來對表單提交信息的過濾,防止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 ():對一個字符串中附和正則規則的字符進行字符替換

表單正則驗證及文件上傳驗證