Codeigniter 3.1.9 MY_Form_validation无法正常工作

时间:2018-12-12 10:34:11

标签: codeigniter

我正在使用Codeigniter 3.1.9,并在本地计算机上填写了我的表格。我刚才在服务器上上传了我的应用,但出现错误

  

无法访问与您的字段名称相对应的错误消息   网址。(valid_url_format)

我在Google上很多,但无法解决问题。

文件名: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 :(得分:0)

我总是在运行中使用自定义验证,这是我第一次尝试为其他验证创建自定义库,无论如何,我创建并测试了该库以确保其有效,您必须确保遵循命名约定,文件名应如下:MY_Form_validation.php并将其保存在application/libraries中,然后创建您的类:

class MY_Form_validation extends CI_Form_validation
{
    // your rules
}

然后,您必须为每种方法创建错误消息,在application/language/english/form_validation_lang.php中创建一个lang文件,并添加您的自定义错误消息,如下所示:

$lang['valid_url_format'] = 'The {field} field may only contain valid url.';
$lang['url_exists'] = 'The {field} field already exists';