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

everybody help me…please

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;
}
2 Likes

“@” 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

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?