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 相关文章推荐
NO3第三帝国留言簿制作过程
Oct 09 PHP
php 发送带附件邮件示例
Jan 23 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
php表单请求获得数据求和示例
May 15 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
safari下载文件自动加了html后缀问题
Nov 09 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
PHP实现通过二维数组键值获取一维键名操作示例
Oct 11 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
swfupload 多文件上传实现代码
2008/08/27 PHP
php获取apk包信息的方法
2014/08/15 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
python开发之list操作实例分析
2016/02/22 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
python实现排序算法解析
2018/09/08 Python
python生成n个元素的全组合方法
2018/11/13 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
卫校中专生的自我评价
2014/01/15 职场文书
高一物理教学反思
2014/01/24 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
离婚协议书格式
2015/01/26 职场文书
工作态度怎么写
2015/06/25 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
员工考勤管理制度
2015/08/06 职场文书