如何使用Codeigniter的表单验证来防止特殊字符?

时间:2012-04-23 05:04:58

标签: codeigniter

我有一个用户名字段,我不想接受像{*)&(%^%()_}这样的字符。我需要将哪些内容添加到表单验证规则中?

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

2 个答案:

答案 0 :(得分:5)

请阅读doc。这并不难。

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

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

但是如果您只想限制为字母,请使用alpha规则。或者,如果要将用户名限制为字母,数字,下划线和短划线,请使用alpha_dash规则。

答案 1 :(得分: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;
    }
}