CI框架表单验证
【摘要】
1、form头部信息的自动输出函数(view)
<?php $attributes = array('class' => 'email', 'id' => 'myform'); echo form_open('email/send', $attributes); ...
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');
-
-
?>
-
<?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] view plain copy
-
-
<?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>
文章来源: markwcm.blog.csdn.net,作者:黄啊码,版权归原作者所有,如需转载,请联系作者。
原文链接:markwcm.blog.csdn.net/article/details/72845615
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)