Codeigniter 3.1.9 MY_Form_validation не работает - PullRequest
0 голосов
/ 12 декабря 2018

Я работаю над Codeigniter 3.1.9 и заполнил форму на локальной машине.Я только что загрузил свое приложение несколько минут назад на сервер и получаю сообщение об ошибке

Невозможно получить доступ к сообщению об ошибке, соответствующему URL вашего имени поля. (valid_url_format)

i google alotно не может решить проблему.

Имя файла: My_Form_validation.php Расположение: приложение \ библиотеки

    class MY_Form_validation extends CI_Form_validation{

   public function __construct()
   {
     parent::__construct();
    }                           

    function valid_url_format($str){
        $pattern = "/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i";
                if (!preg_match($pattern, $str)){
            $this->set_message('valid_url_format', 'The URL you entered is not correctly formatted.');
            return FALSE;
        }

        return TRUE;
    }        

    function url_exists($url){                                   
        $url_data = parse_url($url); // scheme, host, port, path, query
        if(!fsockopen($url_data['host'], isset($url_data['port']) ? $url_data['port'] : 80)){
            $this->set_message('url_exists', 'The URL you entered is not accessible.');
            return FALSE;
        }               

        return TRUE;
    }  
}

Имя файла: UrlChecker.php Расположение: приложение \ контроллеры

        class UrlChecker extends CI_Controller {

        public function __construct() {

            parent::__construct();

        }

        public  function _initializing(){



        }

        public function index()
        {



            $this->form_validation->set_rules('link', 'URL', 'required|trim|valid_url_format|url_exists');

            if ($this->form_validation->run() == FALSE)
            {
                echo validation_errors('<div class="alert alert-danger" role="alert">', '</div>');
            }

            else

            {

    echo 'ok';

    }

}

Пожалуйста, проверьте и дайте мне знать, что не так, есть проблема с версией хостинга или есть что-то еще.

1 Ответ

0 голосов
/ 12 декабря 2018

Я всегда использую пользовательскую проверку на лету, и я впервые пытаюсь создать пользовательскую библиотеку для дополнительных проверок. В любом случае, я создал и протестировал ее, чтобы убедиться, что она работает, вы должны убедиться, что соблюдаете соглашение об именах,имя файла должно быть таким: MY_Form_validation.php и сохраните его в своем application/libraries, затем создайте свой класс:

class MY_Form_validation extends CI_Form_validation
{
    // your rules
}

, затем вы должны создать сообщения об ошибках для каждого метода, создать файл lang в вашемapplication/language/english/form_validation_lang.php и добавьте свои собственные сообщения об ошибках как это:

$lang['valid_url_format'] = 'The {field} field may only contain valid url.';
$lang['url_exists'] = 'The {field} field already exists';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...