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中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
php输入流php://input使用浅析
Sep 02 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
PHP多文件上传实例
Jul 09 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
PHP中JSON的应用技巧
Oct 10 PHP
YII Framework框架教程之缓存用法详解
Mar 14 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
php分页查询mysql结果的base64处理方法示例
May 18 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
PHP实现多图上传和单图上传功能
May 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
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
js计算页面刷新的次数
2009/07/20 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
Express.JS使用详解
2014/07/17 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
javascript常用函数(2)
2015/11/05 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
文案策划求职信
2014/03/18 职场文书
《搭石》教学反思
2014/04/07 职场文书
小学教师读书活动总结
2014/07/08 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
个人自荐书范文
2015/03/09 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
使用CSS实现音波加载效果
2023/05/07 HTML / CSS