2015-06-08 83 views
4

我習慣於使用CodeIgniter編碼應用程序,我是一個新手。我剛開始學習CodeIgniter 3.0,並達到了驗證規則。CodeIgniter電子郵件和密碼的驗證規則

我注意到xss_clean現在已經從驗證類中消失了,所以我應該在驗證電子郵件和密碼時使用哪些規則?僅使用trim,valid_email,並且對安全性的要求足夠了?

對不起,如果這個問題已被問到,但我搜索周圍,我看到人們使用xss_clean的舊主題。

+0

xss_clean在Codeigniter 3.0中不推薦使用。它不再在form_validation庫中。對於完全阻止XSS也沒有那麼有用。你應該有自定義函數來清理userdata。在html上打印時更好地清理userdata。 –

回答

4

包括電子郵件助手:

$this->load->helper('email');

對於電子郵件:

$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|xss_clean'); 

或者你也可以使用PHP過濾的電子郵件驗證爲

filter_var($email, FILTER_VALIDATE_EMAIL);

對於密碼錶達

public function chk_password_expression($str) 

    { 

    if (1 !== preg_match("/^.*(?=.{6,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).*$/", $str)) 

    { 
     $this->form_validation->set_message('chk_password_expression', '%s must be at least 6 characters and must contain at least one lower case letter, one upper case letter and one digit'); 
     return FALSE; 
    } 

    else 

    { 
     return TRUE; 
    } 
} 

要調用的函數,你應該使用:

$this->form_validation->set_rules( 'password', 'Password', 'trim|required|min_length[6]|max_length[15]|callback_chk_password_expression'); 

注:chk_password_expression應該是同一類控制器或父類。電子郵件助手應該被包含爲$ this-> load-> helper('email');

+0

在CodeIgniter 3中不是xss_clean折舊?另外,密碼錶達式有什麼作用? –

+1

除此之外,在電子郵件幫助器類中,它表示「電子郵件幫助器已被棄用,目前僅保留用於向後兼容。」 –

+0

http://www.codeigniter.com/userguide3/helpers/email_helper.html#loading-this-helper在這裏檢查如何使用這個。你也可以使用filter_var($ email,FILTER_VALIDATE_EMAIL); – Deep

相關問題