本文实例讲述了CI框架表单验证的方法。分享给大家供大家参考,具体如下:
1、form头部信息的自动输出函数(view)
1
2
3
4
5
6
7
8
9
10
|
<?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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<?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)
1
2
3
4
|
<?php
$this ->form_validation->set_message( 'required' , '必须填写' );
$this ->form_validation->set_message( 'valid_email' , '不是有效的email' );
?>
|
4、运行检查错误信息(controller)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?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)
1
2
3
4
5
6
7
8
9
|
<?php
//1.一股脑儿的全部输出(放在表单标签的上方即可)
echo validation_errors();
//2.针对单个表单单独输出(放在单个标签附近 参数为对应表单元素的域名)
echo form_error( 'password' );
//3.针对单个表单输出的时候 需要修改定界符 显示错误信息样式(控制器里设置)
$this ->form_validation->set_error_delimiters( '<span class="error">' , '</span>' );
//设置成内联元素比较好
?>
|
6、错误后 重新回填表单(view)
1
2
3
4
5
6
7
8
9
|
<?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代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
< 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程序设计有所帮助。