CI框架表单验证实例详解


Posted in PHP onNovember 21, 2016

本文实例讲述了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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
动易数据转成dedecms的php程序
Apr 07 PHP
php 设计模式之 工厂模式
Dec 19 PHP
php绝对路径与相对路径之间关系的的分析
Mar 03 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
组合算法的PHP解答方法
Feb 04 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
PHP中使用CURL获取页面title例子
Jan 07 PHP
php文件操作相关类实例
Jun 18 PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 PHP
PHP设计模式之适配器模式定义与用法详解
Apr 03 PHP
ThinkPHP中图片按比例切割的代码实例
Mar 08 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 #PHP
静态html文件执行php语句的方法(推荐)
Nov 21 #PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 #PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 #PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 #PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 #PHP
php运行报错Call to undefined function curl_init()的最新解决方法
Nov 20 #PHP
You might like
php图片上传存储源码并且可以预览
2011/08/26 PHP
PHP处理会话函数大总结
2015/08/05 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
JQuery datepicker 使用方法
2011/05/20 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
Python获取某一天是星期几的方法示例
2017/01/17 Python
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
简单了解什么是神经网络
2017/12/23 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
Python imread、newaxis用法详解
2019/11/04 Python
Python如何进行时间处理
2020/08/06 Python
浅析NumPy 切片和索引
2020/09/02 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
超市国庆节促销方案
2014/02/20 职场文书
道德演讲稿
2014/05/21 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript