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 相关文章推荐
PHP入门学习笔记之一
Oct 12 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
使用PHP实现二分查找算法代码分享
Jun 24 PHP
PHP使用数组实现队列
Feb 05 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
探究Laravel使用env函数读取环境变量为null的问题
Dec 06 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
php实现简单四则运算器
Nov 29 PHP
PHP的垃圾回收机制代码实例讲解
Feb 27 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 截取字符串专题集合
2010/08/19 PHP
php Smarty 字符比较代码
2011/02/27 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
jquery 元素相对定位代码
2010/10/15 Javascript
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
python爬虫基础之urllib的使用
2020/12/31 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
database面试题
2013/03/28 面试题
自主实习接收函
2014/01/13 职场文书
高一生物教学反思
2014/01/17 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
离婚财产分割协议书
2015/08/11 职场文书
团结友爱主题班会
2015/08/13 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js