01/10/2018, 09:02

Validation ký tự đặc biệt codeigniter

mấy bác ơi em muốn bắt validation cho form. em dùng callback để gọi n~ ký tự đặt biệt nào thì error. đây là code.

public function _sign($value = '){
	$data = array('!','@','#','$','%','^','&','*','(',')','-','=','duythach');
		if(in_array($value, $data) == TRUE){
		$this->form_validation->set_message('_sign', '%s Không Được Chứa Ký Tự Đặc Biệt '.$value);
		return FALSE;
	}
	return TRUE;
}

nếu em nhập @ thì đúng nó chạy, còn @@@@@ thì nó ko bắt dc ạ, ai help e vs

Dừa viết 11:08 ngày 01/10/2018

everybody help me…please

Ice Tea viết 11:02 ngày 01/10/2018

Bạn dùng regex nhé. Ví dụ:

<?php
public function _sign($value = '') {
    $pattern = '#[!@#$%^&*()-=]+|(duythach)+#';
    if (preg_match($pattern, $value)) {
        $this->form_validation->set_message('_sign', '%s Không Được Chứa Ký Tự Đặc Biệt ' . $value);
    
        return false;
    }

    return true;
}
Code Đại Hiệp viết 11:10 ngày 01/10/2018

“@” khác “@@@@” nên khi bạn nhập “@” thì nó bắt đc vì @ thuộc $data. Nhưng nếu bạn nhập “@@@” nó sẽ khác với “@” trong $data nên nó sẽ không bắt đc. Giải pháp là Regular Ex như các bác trên trình bày

Bài liên quan
0