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 empty() 检查一个变量是否为空
Nov 10 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
PHP生成及获取JSON文件的方法
Aug 23 PHP
thinkphp修改配置进入默认首页的方法
Feb 07 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
php strftime函数的详细用法
Jun 21 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 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/10/09 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
50个比较实用jQuery代码段
2011/09/18 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
提高python代码运行效率的一些建议
2020/09/29 Python
python绘图模块之利用turtle画图
2021/02/12 Python
比较基础的php面试题及答案-填空题
2014/04/26 面试题
写求职信有什么意义
2014/02/17 职场文书
售后服务承诺书
2014/03/26 职场文书
学生安全责任书范本
2014/07/24 职场文书
乡镇领导班子四风整顿行动工作汇报
2014/10/25 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
学籍证明模板
2014/11/21 职场文书
建国大业观后感
2015/06/01 职场文书
暖春观后感
2015/06/08 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
i7 6700处理器相当于i5几代
2022/04/19 数码科技