在前面發布的「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 方法...