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脚本的10个技巧(1)
Oct 09 PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
Mac OS下配置PHP+MySql环境
Feb 25 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 PHP
YII2框架中actions的作用与使用方法示例
Mar 13 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/11/25 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
jquery map方法使用示例
2014/04/23 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
python 多进程通信模块的简单实现
2014/02/20 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
python处理大日志文件
2019/07/23 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
Python hashlib模块实例使用详解
2019/12/24 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
庆国庆活动总结
2014/08/28 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python