Web表單與會話技術 使用者註冊表單資料格式驗證

2021-10-10 18:57:13 字數 2961 閱讀 6222

在前面發布的「web表單與會話技術_使用者註冊」基礎上,進行表單格式驗證。

1、建立表單資料格式驗證函式庫檔案(check_form.php)

<?php

//驗證使用者名稱(2-10位,只支援漢字、英文本母、數字、下劃線)

/* * preg_match()正規表示式匹配函式

「/^....../$」表示要匹配的字串必須按照指定規則開始和結束

「/....../u」用於匹配多位元組字元

「\w」用於匹配乙個英文本母、數字或下劃線

「」用於限定匹配的字元在2-10個範圍內

「\x-\x」用於匹配字元編碼在0x4e00-0x9fa5連續區域的漢字

*/function checkusername($username)-\x]$/u',$username))

return true;

}//驗證密碼(6-16位,只支援英文本母、數字、下劃線)

function checkpassword($password)$/',$password))

return true;

}//驗證郵箱(不超過40位)

/*乙個完整的郵箱位址由「使用者名稱」、「@符號」、「伺服器網域名稱」3部分組成,使用者名稱可以使用英文本母和數字,伺服器網域名稱要符合網域名稱的規則。

「[a-z0-9]」用於匹配乙個英文本母或數字字元,「[a-z0-9]+」表示匹配一次或多次。

「([a-z0-9]+\.)+」用於迴圈匹配符合「[a-z0-9]+」並且以「.」結束的字串。(由於「.」是正規表示式中的符號,所以使用「\.」進行轉義。)

「[a-z]」用於匹配網域名稱字尾,即com、cn、net等。

*/function checkemail($email)elseif(!preg_match('/^[a-z0-9]+@([a-z0-9]+\.)+[a-z]$/i',$email))

return true;

}

2、在register.php頁面,呼叫表單資料格式驗證函式庫檔案,對使用者輸入的註冊資訊進行驗證。

<?php

header('content-type:text/html; charset=utf-8');

require '../chapter3/public_function.php';

require './check_form.php';

//連線資料庫,設定字符集,選擇資料庫

dbint();

//接收表單資料

$username=$_post['username'];

$email=$_post['email'];

$password=$_post['password'];

//過濾使用者輸入資料

$username=safehandle($username);

$email=safehandle($email);

//通過post傳送的資料會保持在$_post陣列中。

//將接收到的表單資料($username,$email,$password)賦給陣列$ata

$data=array();

$data=$_post;//username,email,password

//為每個字段定義不同的驗證函式

$checkdata=array(

//表單欄位名=》驗證函式名

'username'=>'checkusername',

'email'=>'checkemail',

'password'=>'checkpassword',

);//$error陣列儲存驗證後的錯誤資訊

$error=array();

//迴圈驗證每個字段,儲存錯誤資訊

foreach($checkdata as $k=>$v)

}//如果$error為空,說明表單資料格式正確。

if(empty($error))else

}else

}

3、知識點

(1)一些函式

trim();去除字串左右兩端的空白字元,包括空格、換行和製表符等。

intval();將字串轉換為整型;

strip_tags();去除字元中的「<>」標籤,標籤內的內容也會被去除。

htmlspecialchars();將字串中的html特殊字元轉換為html實體字元。(例echo htmlspecialchars('測試');)//輸出結果:測試

(2)資料驗證

qq號碼驗證:

乙個正確的qq號碼,應該以1-9的數字開頭,從第2位開始是0-9的任意數字,qq號碼長度至少為5位數。

實現qq驗證的正規表示式為:/^[1-9][0-9][4,19]$/

「^[1-9]」表示以1-9的數字開頭,「[0-9][4,19]」表示4-19個任意的十進位制數字,「$」表示字串結尾。因此該正規表示式可以匹配5-20位的qq號碼。

手機號碼驗證:

中國內地的手機號碼由11位數字組成,必須以1開頭,第2位數字只能是3、5、8,後9位則由0-9之間的數字組成。

實現手機號碼驗證的正規表示式為:/^1[358]\d$/

「\d」匹配任意的十進位制數字,相當於[0-9]。

url位址是按照一定格式組成的字串,通常以協議名「http://」開頭,後面跟著網域名稱和檔案路徑。

「^http:\/\/」匹配以「http://」開頭的字串,斜線「/」需要使用反斜線「\」進行轉義。「[a-z\d-]+」匹配英文本母、數字、中橫線「-」,一次或多次。

「[\w\/]+」匹配英文本母、數字、下劃線、斜線「/」,一次或多次。「(\.[\w\/]+)+」用於迴圈匹配符合「\.[\w\/]+」規則的字串。

php使用者註冊表單驗證

註冊介面 require mysql.php 匯入mysql.php訪問資料庫 username post username password post password password2 post password2 post email post email if checkempty use...

登錄檔維修技術

通過登錄檔,作業系統可以獲得相應的資訊,從而執行和控制附屬裝置 應用程式及正確響應使用者的輸入。如果登錄檔中的值被更改將會影響電腦的正常執行。技術17 手動清理登錄檔 要想手動清理掉登錄檔中的無用的東西,可通過找到 hkey local machine 和 hkey current user 根鍵下...

C 登錄檔技術(二)

在 c 中操作登錄檔 在 c 中登錄檔的基本操作主要包括讀取登錄檔中的資訊 建立和修改登錄檔資訊以及刪除登錄檔中的資訊。讀取登錄檔中的資訊 讀取登錄檔中的資訊主要是通過 registrykey 類中的 opensubkey 方法 getsubkeynames 方法和 getvaluenames 方法...