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 09 PHP
PHP4实际应用经验篇(3)
Oct 09 PHP
用PHP实现的随机广告显示代码
Jun 14 PHP
几款免费开源的不用数据库的php的cms
Dec 19 PHP
浅析get与post的一些特殊情况
Jul 28 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
php微信支付之公众号支付功能
May 30 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
laravel与thinkphp之间的区别与优缺点
Mar 02 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 PHP
php去除数组中为0的元素的实例分析
Nov 17 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 第二节 数据类型之字符串类型
2012/04/28 PHP
php使用百度天气接口示例
2014/04/22 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
easyui validatebox验证
2016/04/29 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
python的迭代器与生成器实例详解
2014/07/16 Python
Python实现的简单发送邮件脚本分享
2014/11/07 Python
python模块之paramiko实例代码
2018/01/31 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
酒店大堂副理的职责范文
2014/02/13 职场文书
如何撰写一封出色的求职信
2014/04/27 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
解决Pytorch中关于model.eval的问题
2021/05/22 Python
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
JavaScript设计模式之原型模式详情
2022/06/21 Javascript