[英]Is there any short hands for user input validation in php?
例如,我有一個注冊功能,需要用戶輸入他們的“用戶名”,“電子郵件地址”和“密碼”。
我需要檢查來自用戶的所有參數,該參數不為null,此外,我需要檢查其輸入長度,該長度足夠短以存儲在db中。 此外,我需要檢查數據庫中是否有重復的用戶名和電子郵件。 另外,我需要檢查電子郵件地址是否為有效的電子郵件格式。
只創建一個足夠簡單的注冊函數,我需要做很多檢查。 有什么捷徑可以檢查一些基本的東西嗎? 例如,為了提高生產率,該值不能為null。
您需要檢查所有內容,因為它本身無法檢查。
PHP具有許多有用的功能來輔助...
isset()
isset()
以確保已設置GET / POST變量。 這些丟失通常僅是由於人們修補而引起的。
if ( ! isset($_POST['email'])) {
$this->addError('You did not supply your email');
}
trim()
和empty()
trim()
和empty()
,以確保有人輸入了空格以外的其他文字。 請注意, empty()
是一個構造,必須在變量上調用, 而不是直接由trim()
返回的字符串(我的猜測是,因為它想檢查內存中的塊,而不是堆棧上的值)。
$email = trim($_POST['email']);
if (empty($email)) {
$this->addError('You didn\'t type any non whitespace characters');
}
當然,請使用最終用戶會理解的更好的錯誤。
也經常使用它,您可以制作一個執行此操作的實用程序功能。
filter_var()
您可以使用filter_var()
進行驗證,例如驗證電子郵件,IP和整數。
if ( ! filter_var($email, FILTER_VALIDATE_EMAIL)) {
$this->addError('You did not enter a valid email');
}
正則表達式本身可以做很多事情,例如檢查有效的字符,模式和長度。
if ( ! preg_match('/^\w{4,12}\z/', $username)) {
$this->addError('You did not enter a valid email');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.