CI框架表单验证实例详解
本文实例讲述了CI框架表单验证的方法。分享给大家供大家参考,具体如下:
1、form头部信息的自动输出函数(view)
<?php
$attributes=array('class'=>'email','id'=>'myform');
echoform_open('email/send',$attributes);
//上面一行代码输出:
//<formmethod="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','PasswordConfirmation','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.一股脑儿的全部输出(放在表单标签的上方即可)
echovalidation_errors();
//2.针对单个表单单独输出(放在单个标签附近参数为对应表单元素的域名)
echoform_error('password');
//3.针对单个表单输出的时候需要修改定界符显示错误信息样式(控制器里设置)
$this->form_validation->set_error_delimiters('<spanclass="error">','</span>');
//设置成内联元素比较好
?>
6、错误后重新回填表单(view)
<?php
//一般元素回填(放在标签的values属性中输出)
echoset_value('email');
//特殊元素select/checkbox/radio第三个参数为true时默认被选中
//第二个参数是对应的表单元素的实际值
echoset_select('myselect','three');//放在option的空白属性里
echoset_checkbox('mycheck[]','1');//放在checkbox的空白属性里
echoset_radio('myradio','2');//放在radio的空白属性里
?>
html代码:
<html>
<head>
<title>MyForm</title>
</head>
<body>
<?phpechovalidation_errors();?>
<?phpechoform_open('form');?>
<h5>Username</h5>
<inputtype="text"name="username"value="<?phpechoset_value('username');?>"size="50"/>
<?phpechoform_error('username');?>
<h5>Password</h5>
<inputtype="text"name="password"value="<?phpechoset_value('password');?>"size="50"/>
<?phpechoform_error('password');?>
<h5>PasswordConfirm</h5>
<inputtype="text"name="passconf"value="<?phpechoset_value('passconf');?>"size="50"/>
<?phpechoform_error('passconf');?>
<h5>EmailAddress</h5>
<inputtype="text"name="email"value="<?phpechoset_value('email');?>"size="50"/>
<?phpechoform_error('email');?>
<div><inputtype="submit"value="Submit"/></div>
</form>
</body>
</html>
更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《ZendFrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。