あなたが最大の制御のためのform_validationクラスを拡張することができapplication/libraries/MY_form_validation.php
を作成することにより、余分な検証ルールを追加する - 私が添付しました以下の例。
システムライブラリを直接編集することは悪い習慣です; CIではより良いオプションが提供されます(MY_
クラス、libraries、hooksなど、などのオーバーライド/カスタマイズ)。これにより、CIバージョンを簡単にアップグレードするメリットが得られます&は、アプリケーションをポータブル/カスタムコードをコアフレームワークから隔離した状態に保ちます。
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter Form Validation Extension
*/
class MY_Form_validation extends CI_Form_validation {
/**
* MY_Form_validation::valid_url
* @abstract Ensures a string is a valid URL
*/
function valid_url($url) {
if(preg_match("/^http(|s):\/{2}(.*)\.([a-z]){2,}(|\/)(.*)$/i", $url)) {
if(filter_var($url, FILTER_VALIDATE_URL)) return TRUE;
}
$this->CI->form_validation->set_message('valid_url', 'The %s must be a valid URL.');
return FALSE;
}
/**
* MY_Form_validation::alpha_extra()
* @abstract Alpha-numeric with periods, underscores, spaces and dashes
*/
function alpha_extra($str) {
$this->CI->form_validation->set_message('alpha_extra', 'The %s may only contain alpha-numeric characters, spaces, periods, underscores & dashes.');
return (! preg_match("/^([\.\s-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE;
}
/**
* MY_Form_validation::numeric_comma()
* @abstract Numeric and commas characters
*/
function numeric_comma($str) {
$this->CI->form_validation->set_message('numeric_comma', 'The %s may only contain numeric & comma characters.');
return (! preg_match("/^(\d+,)*\d+$/", $str)) ? FALSE : TRUE;
}
/**
* MY_Form_validation::matches_pattern()
* @abstract Ensures a string matches a basic pattern
*/
function matches_pattern($str, $pattern) {
if (preg_match('/^' . $pattern . '$/', $str)) return TRUE;
$this->CI->form_validation->set_message('matches_pattern', 'The %s field does not match the required pattern.');
return FALSE;
}
}
/* End of file MY_form_validation.php */
/* Location: ./{APPLICATION}/libraries/MY_form_validation.php */
すでに、私はクライアント側をお勧めしたいない場合バリデーションレイヤも同様です。そのため、CodeIgniterレイヤは、何らかの形でフォームを送信できる場合にのみ表示されます。 –
また、私はCIドキュメント:[コールバック:あなた自身の検証関数](http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks)を参照してください。 –
@ JaredFarrishありがとう私は既にliveValidation http://livevalidation.com/を使用してクライアント側のバリデーションを持っています –