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入门速成(2)
Oct 09 PHP
PHP提取中文首字母
Apr 09 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
php处理斐波那契数列非递归方法
Feb 04 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
MyEclipse常用配置图文教程
Sep 11 PHP
php常用hash加密函数
Nov 22 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
CodeIgniter常用知识点小结
May 26 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
实例说明js脚本语言和php脚本语言的区别
Apr 04 PHP
thinkphp5修改view到根目录实例方法
Jul 02 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
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
vue使用vue-cli快速创建工程
2017/07/28 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python编码爬坑指南(必看)
2016/06/10 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
python爬虫中多线程的使用详解
2019/09/23 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Python如何实现动态数组
2019/11/02 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
上班早退检讨书
2014/01/09 职场文书
机关单位动员会主持词
2014/03/20 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
JavaScript实现两个数组的交集
2022/03/25 Javascript