CI框架表单验证

举报
黄啊码 发表于 2022/06/29 00:24:09 2022/06/29
【摘要】 1、form头部信息的自动输出函数(view) <?php $attributes = array('class' => 'email', 'id' => 'myform'); echo form_open('email/send', $attributes); ...

1、form头部信息的自动输出函数(view)


  
  1. <?php
  2. $attributes = array('class' => 'email', 'id' => 'myform');
  3. echo form_open('email/send', $attributes);
  4. //上面一行代码输出:
  5. //<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" id="myform" class="email"/>
  6. /*
  7. * form_open_multipart()
  8. * 函数用法同上,加上了文件上传的信息 上传方式默认为post
  9. */
  10. ?>

2、设置验证规则(controller)


  
  1. <?php
  2. //注意验证规则的变量名必须设置成 config
  3. $config = array(
  4. array(
  5. 'field' => 'username',
  6. 'label' => '用户名',
  7. 'rules' => 'required'
  8. ),
  9. array(
  10. 'field' => 'password',
  11. 'label' => '密码',
  12. 'rules' => 'required'
  13. ),
  14. array(
  15. 'field' => 'passconf',
  16. 'label' => '确认密码',
  17. 'rules' => 'required|matches[password]'
  18. ),
  19. array(
  20. 'field' => 'tel',
  21. 'label' => '手机',
  22. 'rules' => 'required|integer|exact_length[11]'),
  23. array(
  24. 'field' => 'email',
  25. 'label' => '邮箱',
  26. 'rules' => 'required|valid_email'
  27. )
  28. );
  29. //上面的会自动
  30. //单独设置规则
  31. $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[12]|xss_clean');
  32. $this->form_validation->set_rules('password', 'Password', 'trim|required|matches[passconf]|md5');
  33. $this->form_validation->set_rules('passconf', 'Password Confirmation', 'trim|required');
  34. $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
  35. ?>


  
  1. <?php
  2. $this->form_validation->set_message('required', '必须填写');
  3. $this->form_validation->set_message('valid_email', '不是有效的email');
  4. ?>

4、运行检查错误信息(controller)


  
  1. <?php
  2. $this->load->helper(array('form', 'url'));
  3. //加载CI表单验证库
  4. $this->load->library('form_validation');
  5. //----------------------------------------
  6. # 验证规则及错误信息代码放在这里
  7. //----------------------------------------
  8. if ($this->form_validation->run() == FALSE){
  9. //提交失败 重新加载表单部分
  10. $this->load->view('myform');
  11. }else{
  12. //提交成功 表单处理
  13. //跳转成功页面
  14. $this->load->view('formsuccess');
  15. }
  16. }
  17. 5、错误信息的输出函数(view)
  18. [php] view plain copy
  19. <?php
  20. //1.一股脑儿的全部输出(放在表单标签的上方即可)
  21. echo validation_errors();
  22. //2.针对单个表单单独输出(放在单个标签附近 参数为对应表单元素的域名)
  23. echo form_error('password');
  24. //3.针对单个表单输出的时候 需要修改定界符 显示错误信息样式(控制器里设置)
  25. $this->form_validation->set_error_delimiters('<span class="error">', '</span>');
  26. //设置成内联元素比较好
  27. ?>

6、错误后 重新回填表单(view)


  
  1. <?PHP
  2. //一般元素 回填(放在标签的values属性中输出)
  3. echo set_value('email');
  4. //特殊元素select/checkbox/radio 第三个参数为true时 默认被选中
  5. //第二个参数 是对应的表单元素的实际值
  6. echo set_select('myselect', 'three'); //放在option的空白属性里
  7. echo set_checkbox('mycheck[]', '1'); //放在checkbox的空白属性里
  8. echo set_radio('myradio', '2'); //放在radio的空白属性里
  9. ?>

【html代码】


  
  1. <html>
  2. <head>
  3. <title>My Form</title>
  4. </head>
  5. <body>
  6. <?php echo validation_errors(); ?>
  7. <?php echo form_open('form'); ?>
  8. <h5>Username</h5>
  9. <input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />
  10. <?php echo form_error('username'); ?>
  11. <h5>Password</h5>
  12. <input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" />
  13. <?php echo form_error('password'); ?>
  14. <h5>Password Confirm</h5>
  15. <input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="50" />
  16. <?php echo form_error('passconf'); ?>
  17. <h5>Email Address</h5>
  18. <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />
  19. <?php echo form_error('email'); ?>
  20. <div><input type="submit" value="Submit" /></div>
  21. </form>
  22. </body>
  23. </html>


文章来源: markwcm.blog.csdn.net,作者:黄啊码,版权归原作者所有,如需转载,请联系作者。

原文链接:markwcm.blog.csdn.net/article/details/72845615

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。