2012-04-23 127 views
0

我有一个用户名字段,我不想接受像{*)&(%^%()_}这样的字符。我需要添加到我的表单验证规则中?如何防止使用Codeigniter表单验证的特殊字符?

$this->form_validation->set_rules('user_name' 'User Name', 'trim|required|min_length[4]|xss_clean'); 
+1

毫无疑问,在这里...请尝试重组,并问一个问题。 – Mischa 2012-04-23 05:12:44

+0

...并且不要忘记解释你已经尝试了什么以及你卡在哪里。 – 2012-04-23 05:13:25

+0

限制在用户名中使用特殊字符,即使用codeigniter框架。 $ this-> form_validation-> set_rules('user_name','用户名','trim | required | min_length [4] | xss_clean');我已经给出了一些用户名的规定,现在我想在用户名字段中设置限制,并希望在上面的代码行中添加更多的代码。 im卡在这里 – 2012-04-23 05:21:34

回答

4

只看了doc。这并不难。

如果要将用户名字符限制为字母和数字,请使用alpha_numeric规则。

$this->form_validation->set_rules('user_name', 'User Name', 'trim|required|min_length[4]|xss_clean|alpha_numeric'); 

,但如果你想限制只能由字母,使用alpha规则。或者,如果您想将用户名限制为字母,数字,下划线和破折号,请使用alpha_dash规则。

+0

非常感谢@kemal它真的非常有帮助它的工作 – 2012-04-23 05:46:53

+0

@ArunKumar,请点击“V”在这个答案旁边接受它。这样做有两点:它向其他用户显示该问题具有满意的答案(不需要新的答案)。对于凯末尔的努力,它以[声誉](http://stackoverflow.com/faq#reputation)的形式表示赞赏。 – Mischa 2012-04-23 09:20:51

+0

@Mischa ok im doing it – 2012-04-23 12:03:11

0

你应该使用回调函数来检查,如果用户名与模式匹配:

$this->form_validation->set_rules('username', 'Username', 'username_check'); 
.... 
public function username_check($str) 
{ 
    if ($str == 'test') 
    { 
     $this->form_validation->set_message('username_check', 'The %s field can not be the word "test"'); 
     return FALSE; 
    } 
    else 
    { 
     return TRUE; 
    } 
}