|
本帖最后由 rockey329 于 2011-5-20 11:53 编辑
原帖:【解决方法见后!】
是不是只能在控制器里才有效?自定义类或者MODEL里都无效?如果我需要在多个控制器里调用该怎么实现?
PHP复制代码 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Formcheck {
function note_check (){
$CI =& get_instance ();//调用Ci
$CI->form_validation->set_message('required', '%s 不能为空');
$CI->form_validation->set_rules('captcha', '验证码', 'required|callback_check_captcha');
}
function check_captcha ($str){
$CI =& get_instance ();//调用Ci
$captcha = $CI->session->userdata('captcha_word');
if($str !== $captcha){
$CI->form_validation->set_message('check_captcha', '%s 不等于 '.$captcha);
return FALSE;
}else{
$CI->form_validation->set_message('check_captcha', '%s 等于 '.$captcha);
return FALSE;
}
}
}
复制代码
如果用在控制器里是有效的,但是在这个类里无效~~求解~请高手指点
===============================================
问题已经解决,可以通过扩展Form_validation类库实现
举例:
PHP复制代码 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//扩展验证类
class MY_Form_validation extends CI_Form_validation {
function __construct ()
{
parent ::__construct ();
}
function captcha ($str) {
$CI =& get_instance ();
$captcha = $CI->session->userdata('captcha_word');
if($str !== $captcha){
$CI->form_validation->set_message('captcha', '%s 错误 ');
return FALSE;
}else{
return TRUE;
}
}
}
复制代码
然后 $CI->form_validation->set_rules('captcha', '验证码', 'required|captcha');就可以了
|
|