本文实例讲述了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程序设计有所帮助。