CI的表单验证

2 篇文章 0 订阅

奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗

1.在填写表单的页面//wechat_query

  <form name="query" id="form_sub" action="<?php echo extend_url('/wechat/query');?>" method="post">
  <?php echo validation_errors(); ?>  
     姓名: <input type="text" name="userName" id="userName"/>
     手机: <input type="text" name="phoneNum" id="phoneNum"/>
     邮箱: <input type="text" name="userEmail" id="userEmail"/>
     公司: <input type="text" name="companyName" id="companyName"/>
     <input type="submit" value="立即查询帐号"/>
  </form>

2.在接收表单数据的页面

      private function check_form()
      {
      	$this->load->library('form_validation');
      	$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
      	$this->form_validation->set_rules('userEmail', 'userEmail', 'required|valid_emails');
      	$this->form_validation->set_rules('userName', 'userName', 'required');
      	$this->form_validation->set_rules('phoneNum', 'phoneNum', 'required|integer');
      	$this->form_validation->set_rules('companyName', 'companyName', 'required');
      	 
      	if ($this->form_validation->run() == FALSE)
      	{
      		return false;
      	}
      	else
      	{
      		return true;
      	}

3. 接收 返回值,判断是否通过

     	$flag=$this->check_form();
        if(!$flag){
        	$this->showview('wechat_query');
        }else{
   //通过验证
}

说明:

更改错误定界符

  1. $this->form_validation->set_error_delimiters('<div class="error">', '</div>');//统一更改
  2. <?php echo form_error('field name', '<div class="error">', '</div>');       //单独更改
  3. <?php echo validation_errors('<div class="error">', '</div>'); ?>          / /单独更改        

独立显示错误

<h5>Username</h5>
<?php echo form_error('username'); ?>
<input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />

<h5>Password</h5>
<?php echo form_error('password'); ?>
<input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" />

<h5>Password Confirm</h5>
<?php echo form_error('passconf'); ?>
<input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="50" />

<h5>Email Address</h5>
<?php echo form_error('email'); ?>
<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />

设置错误信息

      	$this->form_validation->set_message('required', '请输入%s');
      	$this->form_validation->set_message('valid_emails', '%s格式不正确');
      	$this->form_validation->set_message('integer', '%s格式不正确');

如果你在错误信息中包含了 %s,它将插入显示出你在表单域中设置的别名。

重新填充表单

<body>
<?php echo validation_errors(); ?>
<?php echo form_open('form'); ?>
<h5>Username</h5>
<input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />
<h5>Password</h5>
<input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" />
<h5>Password Confirm</h5>
<input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="50" />
<h5>Email Address</h5>
<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</body>

自己的验证函数:


  检测用户名的唯一性特别有用    

$this->form_validation->set_rules('username', 'Username', 'callback_username_check');

<?php

class Form extends CI_Controller {
 
 function index()
 {
  $this->load->helper(array('form', 'url'));
  
  $this->load->library('form_validation');
   
  $this->form_validation->set_rules('username', 'Username', 'callback_username_check');
  $this->form_validation->set_rules('password', 'Password', 'required');
  $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
  $this->form_validation->set_rules('email', 'Email', 'required');
     
  if ($this->form_validation->run() == FALSE)
  {
   $this->load->view('myform');
  }
  else
  {
   $this->load->view('formsuccess');
  }
 }
 
 function username_check($str)
 {
  if ($str == 'test')
  {
   $this->form_validation->set_message('username_check', 'The %s field can not be the word "test"');
   return FALSE;
  }
  else
  {
   return TRUE;
  }
 }
}
?>


使用数组设置验证规则,可以保存到配置文件里

$config = array(
               array(
                     'field'   => 'username', 
                     'label'   => 'Username', 
                     'rules'   => 'required'
                  ),
               array(
                     'field'   => 'password', 
                     'label'   => 'Password', 
                     'rules'   => 'required'
                  ),
               array(
                     'field'   => 'passconf', 
                     'label'   => 'Password Confirmation', 
                     'rules'   => 'required'
                  ),   
               array(
                     'field'   => 'email', 
                     'label'   => 'Email', 
                     'rules'   => 'required'
                  )
            );

$this->form_validation->set_rules($config); 

更多用法请参考CI手册。
 











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值