代码点火器3.1.9 MY_Form_validation不工作



我在Codeigniter 3.1.9上工作,并在本地机器上完成了我的表格。我刚才在服务器上上传了我的应用程序,并得到错误

无法访问与字段名称对应的错误消息URL。(valid_url_format(

我搜索了很多,但无法解决问题。

文件名: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';
}
}

请检查一下,让我知道哪里出了问题,是主机版本问题还是其他问题。

我总是在运行中使用自定义验证,这是我第一次尝试制作一个用于额外验证的自定义库,无论我如何创建和测试它以确保它有效,你都必须确保遵守命名约定,文件名应该是这样的: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';

相关内容

  • 没有找到相关文章

最新更新