ci框架 2_表单验证(未完善)

创建控制器 user.php

class User extends CI_Controller {
	public function __construct() {
		parent :: __construct();
       // 由于有邮箱唯一性的判断,所以需要这段代码
		$this -> load -> database();
	}
	public function register() {
		
		$this -> load -> helper('form');
		$this -> load -> library('form_validation');
//用户名不能为空
		$this -> form_vali
dation -> set_rules('user' , '用户名' , 'required');
		$this -> form_validation -> set_rules('pass' , '密码' , 'required');
// 重复密码不能为空,并且要和密码相同
		$this -> form_validation -> set_rules('again' , '重复密码' ,  'required|matches[pass]');
		$this -> form_validation -> set_rules('sex' , 'sex' ,'required');
// 邮箱不能空,格式要正确,而且要唯一
		$this -> form_validation -> set_rules('email' , 'email' , 'required|valid_email|is_unique[user.email]');
// 判断已数组形式的表单元素
		$this -> form_validation -> set_rules('addr[]' , 'addr' , 'required');
		if($this -> form_validation ->run() === false) {
			$this -> load -> view('register');
		}
	}
}


对应的表名是 user

 

 

创建视图 register.php

<?php echo validation_errors();?>
<?php echo form_open('user/register');?>
// 表单有误时重填表单值 set_value
user : <input type="text" name="user" value="<?php echo set_value('user');?>" /><br/>
pass : <input type="password" name="pass" value="<?php echo set_value('pass');?>" /><br/>
again : <input type="password" name="again" value="<?php echo set_value('again');?>"/> <br />
email : <input type="text" name="email" value="<?php echo set_value('email');?>"/><br/>
<input type="radio" name="sex" value="1" /> nan 
<input type="radio" name="sex" value="0"/>nv<br/>
地址1 : <input type="text" name="addr[]" value="<?php echo set_value('addr[]');?>"/><br/>
地址2 : <input type="text" name="addr[]"value="<?php echo set_value('addr[]');?>"/><br/>
<input type="submit" value="resiter" />
</form>


 

 

 

回调验证

$this -> form_validation -> set_rules('user' , 'user' , 'callback_user_check');

public function user_check($str) {
		if($str == 'test') {
			$this -> form_validation -> set_message('user_check' , 'the %s is can not save');
			return false;
		} else {
			return true;
		}
	}

 

更改错误定界符

$this -> form_validation -> set_error_delimiers('<div class="error">' , '</div>');
// 在视图中可以定义自己的错误样式


 

定界符单独更改

<?php echo form_error('pass' , '<div class="error2">' , '</div>');?>
// 可以在定义一个 error2选择器,单独更改密码错误提示的样式


 

定义表单规则配置文件【application/config/form_validation.php 需要创建】

$config = array(
    'resiter' => array(
        'field' => 'user',
        'label' => 'user',
        'rules' => 'required'
    ) ,
    'write' => array(
        'field' => 'title' ,
        'label' => 'title',
        'rules' => 'required'
    )
)


 

验证方法

// 注册验证
if($this -> form_validation -> run('register') == false) {
    // error
}


 

还有一种更自动化的方法

假设 有 user 控制器 有个 register 方法

在定义规则时 组名可以以 user/register 的形式定义

在 user 控制器的 register 方法中 验证表单时就不需要

$this -> form_validation -> run('register') 而直接可以 $this -> form_validation -> run() 了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值