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面向对象的使用教程 简单数据库连接
Nov 25 PHP
PHP 5.0 Pear安装方法
Dec 06 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
php解析xml 的四种简单方法(附实例)
Jul 11 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
Laravel框架FormRequest中重写错误处理的方法
Feb 18 PHP
php判断/计算闰年的方法小结【三种方法】
Jul 06 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概述.
2006/10/09 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
python实现的解析crontab配置文件代码
2014/06/30 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
OpenCV 边缘检测
2019/07/10 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
办公室文书岗位职责
2013/12/16 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
汽车销售员工作总结
2015/08/12 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL