我正在用CodeIgniter 3.1.3创建一个博客,我在管理中有一个添加新用户的功能。当我尝试添加新用户时,我收到以下错误:
密码字段与confirm_password字段不匹配。
尽管在密码和CONFROM密码字段中给定的密码是相同的。
我想不出问题的原因。
这是我的模型:
public function insert($data){
$this->db->insert('users', $data);
return true;
}
"这是我的控制器"
public function add(){
//Validation Rules
$this->form_validation->set_rules('first_name','First Name','trim|required');
$this->form_validation->set_rules('last_name','Last Name','trim|required');
$this->form_validation->set_rules('email','Email','trim|required|valid_email');
$this->form_validation->set_rules('username','Username','trim|required|min_length[3]');
$this->form_validation->set_rules('password', 'Password', 'required|matches[confirm_password]');
$data['groups'] = $this->User_model->get_groups();
if($this->form_validation->run() == FALSE){
//Views
$data['main_content'] = 'admin/users/add';
$this->load->view('admin/layouts/main', $data);
} else {
//Create Data Array
$data = array(
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'username' => $this->input->post('username'),
'password' => md5($this->input->post('password')),
'group_id' => $this->input->post('group'),
'email' => $this->input->post('email')
);
//Table Insert
$this->User_model->insert($data);
//Create Message
$this->session->set_flashdata('user_saved', 'User has been saved');
//Redirect to pages
redirect('admin/users');
}
以下是我的观点:
<div class="row">
<div class="col-lg-12">
<div class="form-group">
<label>First Name</label>
<input class="form-control" type="text" name="first_name" value="<?php echo set_value('first_name'); ?>" placeholder="Enter First Name" />
</div>
<div class="form-group">
<label>Last Name</label>
<input class="form-control" type="text" name="last_name" value="<?php echo set_value('last_name'); ?>" placeholder="Enter Last Name" />
</div>
<div class="form-group">
<label>Email Address</label>
<input class="form-control" type="email" name="email" value="<?php echo set_value('email'); ?>" placeholder="Enter Email" />
</div>
<div class="form-group">
<label>Username</label>
<input class="form-control" type="text" name="username" value="<?php echo set_value('username'); ?>" placeholder="Enter Username" />
</div>
<div class="form-group">
<label>Password</label>
<input class="form-control" type="password" name="password" value="<?php echo set_value('password'); ?>" placeholder="Enter Password" />
</div>
<div class="form-group">
<label>Confirm Password</label>
<input class="form-control" type="password" name="confirm_password" value="<?php echo set_value('confirm_password'); ?>" placeholder="Confirm Password" />
</div>
<div class="form-group">
<label>User Group</label>
<select name="group" class="form-control">
<?php foreach($groups as $group) : ?>
<option value="<?php echo $group->id; ?>"><?php echo $group->name; ?></option>
<?php endforeach; ?>
</select>
</div>
</div><!-- /.row -->
5条答案
按热度按时间c0vxltue1#
把你的表单验证改为这样,记住在config/autoload.php文件中自动加载表单验证,比如
$autoload['libraries'] = array('form_validation');
。如果它不起作用,请在下面评论。20jt8wwn2#
下面是一个干净简单的方法来实现这一点。
下面是我的
controller
代码:现在进行表单验证:
1.在
config
文件夹中创建form_validation.php
文件。1.然后在
autoload.php
文件中写入此行。$autoload['libraries'] = array('form_validation');
下面是我的代码
form_validation.php
文件。lvjbypge3#
配置/自动加载. php:
查看:
控制器:
eoigrqb64#
您必须使用两次设置规则才能进行双密码确认
http://prntscr.com/kl4mfu
http://prntscr.com/kl4m7u
http://prntscr.com/kl4lvm
ebdffaop5#
在中创建表单验证文件
编写下面的代码
控制器代码