Я новичок в CodeIgniter, и я просто застрял в самом начале. Я использую расширение HMVC, и при проверке я получаю следующую ошибку:
Не удалось получить доступ к сообщению об ошибке, соответствующему имени вашего поля Password. (Pword_check)
любая помощь будет с благодарностью
Код:
public function submit() { $this->load->library('form_validation'); $this->form_validation->set_rules('username', 'Username', 'required|max_length[30]|xss_clean'); $this->form_validation->set_rules('pword', 'Password', 'required|max_length[30]|callback_pword_check|xss_clean'); if ($this->form_validation->run() == FALSE) { $this->login(); } else { echo 'Success'; die(); } } public function pword_check($str) { if ($str == 'test') { $this->form_validation->set_message('pword_check', 'The %s field can not be the word "test"'); return FALSE; } else { return TRUE; } }
xss_clean больше не является частью проверки формы в Codeingitore 3
Просто удалите xss_clean
из вашей проверки roul
$this->form_validation->set_rules('pword', 'Password', 'required|max_length[30]|callback_pword_check');
Если вам действительно необходимо применить это правило, теперь вы также должны загрузить Security Helper, который содержит xss_clean()
в качестве регулярной функции и, следовательно, может также использоваться в качестве правила проверки.
перейдите в application/config/autoload.php :
$autoload['helper'] = array('security');
Или, прежде чем ваша форма проверки
$this->load->helper('security');
Привет, ребята Я нашел решение для работы с call_backs в hmvc codeIgniter. Я хотел бы опубликовать решение для других.
Решение:
1. Создайте файл MY_Form_validation.php в папке библиотек и вставьте в него следующий код.
if (!defined('BASEPATH')) exit('No direct script access allowed'); class MY_Form_validation extends CI_Form_validation { function run($module = '', $group = '') { (is_object($module)) AND $this->CI = &$module; return parent::run($group); } }
if ($this->form_validation->run() == FALSE)
на if ($this->form_validation->run($this) == FALSE)
все люди .. Причина этой ошибки заключается в том, что вы не загрузили помощника по безопасности, так как включить помощника безопасности с autoload.php в папке конфигурации или вы можете напрямую загрузить помощника, как упоминалось в последней строке этого сообщения
И если, несмотря ни на что, вам это действительно нужно, перейдите в application / config / autoload.php:
$ autoload ['helper'] = array ('security'); Или, прежде чем ваша форма проверки $ this-> load-> helper ('security');