CI框架表单验证实例详解
author:一佰互联 2019-04-26   click:164

本文实例讲述了CI框架表单验证的方法。分享给大家供大家参考,具体如下:

1、form头部信息的自动输出函数(view)

<?php
 $attributes = array("class" => "email", "id" => "myform");
 echo form_open("email/send", $attributes);
 //上面一行代码输出:
 //<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" id="myform" class="email"/>
 /*
 * form_open_multipart()
 * 函数用法同上,加上了文件上传的信息 上传方式默认为post
 */
?>

2、设置验证规则(controller)

<?php
//注意验证规则的变量名必须设置成 config
$config = array(
        array(
           "field"  => "username",
           "label"  => "用户名",
           "rules"  => "required"
         ),
        array(
           "field"  => "password",
           "label"  => "密码",
           "rules"  => "required"
         ),
        array(
           "field"  => "passconf",
           "label"  => "确认密码",
           "rules"  => "required|matches[password]"
         ),
        array(
           "field"  => "tel",
           "label"  => "手机",
           "rules"  => "required|integer|exact_length[11]"),
        array(
           "field"  => "email",
           "label"  => "邮箱",
           "rules"  => "required|valid_email"
         )
      );
//上面的会自动
//单独设置规则
$this->form_validation->set_rules("username", "Username", "trim|required|min_length[5]|max_length[12]|xss_clean");
$this->form_validation->set_rules("password", "Password", "trim|required|matches[passconf]|md5");
$this->form_validation->set_rules("passconf", "Password Confirmation", "trim|required");
$this->form_validation->set_rules("email", "Email", "trim|required|valid_email");
?>

3、规则对应的错误提示(controller)

<?php
$this->form_validation->set_message("required", "必须填写");
$this->form_validation->set_message("valid_email", "不是有效的email");
?>

4、运行检查错误信息(controller)

<?php
 $this->load->helper(array("form", "url"));
 //加载CI表单验证库
 $this->load->library("form_validation");
 //----------------------------------------
 # 验证规则及错误信息代码放在这里
 //----------------------------------------
 if ($this->form_validation->run() == FALSE){
   //提交失败 重新加载表单部分
   $this->load->view("myform");
 }else{
   //提交成功 表单处理
   //跳转成功页面
   $this->load->view("formsuccess");
 }
}

5、错误信息的输出函数(view)

<?php
  //1.一股脑儿的全部输出(放在表单标签的上方即可)
  echo validation_errors();
  //2.针对单个表单单独输出(放在单个标签附近 参数为对应表单元素的域名)
  echo form_error("password");
  //3.针对单个表单输出的时候 需要修改定界符 显示错误信息样式(控制器里设置)
  $this->form_validation->set_error_delimiters("<span class="error">", "</span>");
  //设置成内联元素比较好
?>

6、错误后 重新回填表单(view)

<?php
 //一般元素 回填(放在标签的values属性中输出)
 echo set_value("email");
 //特殊元素select/checkbox/radio 第三个参数为true时 默认被选中
 //第二个参数 是对应的表单元素的实际值
 echo set_select("myselect", "three"); //放在option的空白属性里
 echo set_checkbox("mycheck[]", "1"); //放在checkbox的空白属性里
 echo set_radio("myradio", "2");    //放在radio的空白属性里
?>

html代码:

<html>
 <head>
  <title>My Form</title>
 </head>
<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" />
  <?php echo form_error("username"); ?>
  <h5>Password</h5>
  <input type="text" name="password" value="<?php echo set_value("password"); ?>" size="50" />
  <?php echo form_error("password"); ?>
  <h5>Password Confirm</h5>
  <input type="text" name="passconf" value="<?php echo set_value("passconf"); ?>" size="50" />
  <?php echo form_error("passconf"); ?>
  <h5>Email Address</h5>
  <input type="text" name="email" value="<?php echo set_value("email"); ?>" size="50" />
  <?php echo form_error("email"); ?>
  <div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>

更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。