Rumah  >  Artikel  >  pembangunan bahagian belakang  >  关于CI框架的表单验证分析

关于CI框架的表单验证分析

不言
不言asal
2018-06-14 13:47:571809semak imbas

这篇文章主要介绍了CI框架表单验证的方法,结合实例形式总结分析了CI框架表单验证规则设置、错误提示、view显示等相关操作技巧与使用方法,需要的朋友可以参考下

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

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

<?php
 $attributes = array(&#39;class&#39; => &#39;email&#39;, &#39;id&#39; => &#39;myform&#39;);
 echo form_open(&#39;email/send&#39;, $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(
           &#39;field&#39;  => &#39;username&#39;,
           &#39;label&#39;  => &#39;用户名&#39;,
           &#39;rules&#39;  => &#39;required&#39;
         ),
        array(
           &#39;field&#39;  => &#39;password&#39;,
           &#39;label&#39;  => &#39;密码&#39;,
           &#39;rules&#39;  => &#39;required&#39;
         ),
        array(
           &#39;field&#39;  => &#39;passconf&#39;,
           &#39;label&#39;  => &#39;确认密码&#39;,
           &#39;rules&#39;  => &#39;required|matches[password]&#39;
         ),
        array(
           &#39;field&#39;  => &#39;tel&#39;,
           &#39;label&#39;  => &#39;手机&#39;,
           &#39;rules&#39;  => &#39;required|integer|exact_length[11]&#39;),
        array(
           &#39;field&#39;  => &#39;email&#39;,
           &#39;label&#39;  => &#39;邮箱&#39;,
           &#39;rules&#39;  => &#39;required|valid_email&#39;
         )
      );
//上面的会自动
//单独设置规则
$this->form_validation->set_rules(&#39;username&#39;, &#39;Username&#39;, &#39;trim|required|min_length[5]|max_length[12]|xss_clean&#39;);
$this->form_validation->set_rules(&#39;password&#39;, &#39;Password&#39;, &#39;trim|required|matches[passconf]|md5&#39;);
$this->form_validation->set_rules(&#39;passconf&#39;, &#39;Password Confirmation&#39;, &#39;trim|required&#39;);
$this->form_validation->set_rules(&#39;email&#39;, &#39;Email&#39;, &#39;trim|required|valid_email&#39;);
?>

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

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

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

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

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

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

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

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

html代码:

<html>
 <head>
  <title>My Form</title>
 </head>
<body>
 <?php echo validation_errors(); ?>
 <?php echo form_open(&#39;form&#39;); ?>
  <h5>Username</h5>
  <input type="text" name="username" value="<?php echo set_value(&#39;username&#39;); ?>" size="50" />
  <?php echo form_error(&#39;username&#39;); ?>
  <h5>Password</h5>
  <input type="text" name="password" value="<?php echo set_value(&#39;password&#39;); ?>" size="50" />
  <?php echo form_error(&#39;password&#39;); ?>
  <h5>Password Confirm</h5>
  <input type="text" name="passconf" value="<?php echo set_value(&#39;passconf&#39;); ?>" size="50" />
  <?php echo form_error(&#39;passconf&#39;); ?>
  <h5>Email Address</h5>
  <input type="text" name="email" value="<?php echo set_value(&#39;email&#39;); ?>" size="50" />
  <?php echo form_error(&#39;email&#39;); ?>
  <p><input type="submit" value="Submit" /></p>
</form>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

关于CI框架封装常用的图像处理方法

关于CI框架视图中加载视图的方法

Atas ialah kandungan terperinci 关于CI框架的表单验证分析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn