簡體   English   中英

在php中進行用戶輸入驗證是否有捷徑?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM