2014-01-27 56 views
1

我有一個註冊頁面,有很多提交。其中許多應該由用戶填寫。
enter image description here
我使用RequiredFieldValidatorRegularExpressionValidator在客戶端驗證。 我應該在服務器端驗證它們嗎?怎麼樣?
我寫了這段代碼。我使用許多if和else if。它是否正確?
如何驗證代碼背後的許多字段?

CaptchaControl1.ValidateCaptcha(txtSecureImg.Text); 

if (CaptchaControl1.UserValidated) 
{ 
    if (txtFName.Text != string.Empty && txtLName.Text != string.Empty && txtUserName.Text != string.Empty && txtEmail.Text != string.Empty && txtPass.Text != string.Empty && txtCPass.Text != string.Empty && txtSecureImg.Text != string.Empty) 
    { 
     if (RegEx.EmailValidate(txtEmail.Text) == 1 && RegEx.PasswordValidate(txtPass.Text) == 1 && RegEx.UserName(txtUserName.Text) == 1) 
     { 
      try 
      { 
       // insert in database 
      } 
      catch (Exception) 
      { 
       lblMsg.Text = "Error"; 
      } 
     } 
     else if(RegEx.EmailValidate(txtEmail.Text) == 0) 
     { 
     EmailRegularExpression.Visible = true; 
     } 
     else if(RegEx.PasswordValidate(txtPass.Text) == 0) 
     { 
     passRegularExpression.Visible = true; 
     } 
     else if(RegEx.UserName(txtUserName.Text) == 0) 
     { 
     UnameRegularExpression.Visible = true; 
     } 
    } 
    else if(txtFName.Text == string.Empty) 
    { 
    RequiredFieldValidator1.Visible = true; 
    } 
    // continue like above for another filed 
} 
else 
{ 
    lblMsg.Text = "Please insert Secure Image"; 
} 


和:

public static int EmailValidate(string Mail) 
{ 
    int i = 0; 
    Regex regExEmail = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); 
    if (regExEmail.IsMatch(Mail)) 
     i = 1; 
    return i; 
} 

回答

3

我假設這是Web窗體...

驗證自動運行。你可以使用Page.IsValid屬性:msdn

你仍然需要手動檢查captcha字段。

CaptchaControl1.ValidateCaptcha(txtSecureImg.Text); 

if (CaptchaControl1.UserValidated && Page.IsValid) 
{ 
    // Insert in db. 
} 
+0

是的,這是Web窗體。謝謝。 – Farzaneh

2

由於您使用了這些驗證器,因此您不需要再像驗證碼那樣在服務器端驗證表單。

但是您應該撥打Page.Validate(),然後用Page.IsValid方法檢查頁面。

here

example

相關問題