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实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
PHP图像处理类库及演示分享
May 17 PHP
php判断是否连接上网络的方法实例详解
Dec 14 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 PHP
详解PHP PDO简单教程
May 28 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 PHP
PHP创建对象的六种方式实例总结
Jun 27 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 PHP
解决Laravel 不能创建 migration 的问题
Oct 09 PHP
CI框架简单分页类用法示例
Jun 06 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实现的中文分词类完整实例
2017/02/06 PHP
php实现登录页面的简单实例
2019/09/29 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
Python 异常处理实例详解
2014/03/12 Python
Python异常处理总结
2014/08/15 Python
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
django中瀑布流写法实例代码
2019/10/14 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
给老师的道歉信
2014/01/11 职场文书
企业承诺书格式
2014/05/21 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
2016公司新年问候语
2015/11/11 职场文书
导游词之日本富士山
2020/01/06 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
基于Python实现射击小游戏的制作
2022/04/06 Python
Redis全局ID生成器的实现
2022/06/05 Redis
React自定义hook的方法
2022/06/25 Javascript