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 增加了对 .ZIP 文件的读取功能
Oct 09 PHP
资料注册后发信小技巧
Oct 09 PHP
中英文字符串翻转函数
Dec 09 PHP
php 使用post,get的一种简洁方式
Apr 25 PHP
如何使用php输出时间格式
Aug 31 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
PHP生成压缩文件实例
Feb 07 PHP
java模拟PHP的pack和unpack类
Apr 13 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
YII框架http缓存操作示例
Apr 29 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 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使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
session 加入redis的实现代码
2016/07/15 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
2011/07/26 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
Python selenium文件上传方法汇总
2020/11/19 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
Python实现的质因式分解算法示例
2018/05/03 Python
Python中collections模块的基本使用教程
2018/12/07 Python
Python3 翻转二叉树的实现
2019/09/30 Python
Django admin组件的使用
2020/10/24 Python
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
香港零食网购:上仓胃子
2020/06/08 全球购物
学生党员思想汇报
2013/12/28 职场文书
自动化专业个人求职信范文
2013/12/30 职场文书
军训心得体会
2013/12/31 职场文书
投资意向书范本
2014/04/01 职场文书
公司证明怎么写
2014/09/22 职场文书
教代会开幕词
2015/01/28 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫