【发布时间】:2016-07-29 16:16:29
【问题描述】:
我是使用 CI 的新手,我在尝试验证表单时遇到问题,当我让任何字段为空白时,它可以工作,代码向我显示验证错误,它可以将用户保存在数据库中太...但是验证保存了 2 个具有相同“usuario”的用户,我不想要这个
如果有人可以帮忙
这是控制器的代码。
<?php
class Usuarios extends CI_controller
{
public function __construct()
{
parent::__construct();
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->model('usuarios_model');
}
public function index()
{
$this->load->view('usuarios_view');
}
public function registro()
{
$this->load->view('registro_view');
//$this->load->model('usuarios_model');
}
public function registro_very()
{
if($this->input->post('submit_reg'))
{
$this->form_validation->set_rules('nombre', 'Nombre', 'required');
$this->form_validation->set_rules('correo', 'Correo', 'required|trim');
$this->form_validation->set_rules('user', 'Usuario', 'required|trim|callback_veryuser');
$this->form_validation->set_rules('pass', 'Contraseña', 'required|trim');
$this->form_validation->set_message('required', 'El campo %s esobligatorio');
$this->form_validation->set_message('veryuser', 'El %s ya existe');
if($this->form_validation->run() != FALSE)
{
$this->usuarios_model->add_user();
$data = array('mensaje' => 'El usuario se registro correctamente');
$this->load->view('registro_view', $data);
}
else
{
$this->load->view('registro_view');
}
}
}
public function veryuser($user)
{
$variable = $this->usuarios_model->veryuser($user);
if($variable == true)
{
return false;
}
else
{
return true;
}
}
}
型号:
class Usuarios_model extends CI_model
{
public function __construct()
{
parent::__construct();
}
public function veryuser($user)
{
$consulta = $this->db->get_where('usuarios', array('usuario' => $user));
$row_cnt = $consulta->num_rows;
if($row_cnt == 1)
{
return true; //el usuario existe
}
else
{
return false; //el usuario no existe
}
}
public function add_user()
{
$this->db->insert('usuarios',
array(
'nombre' => $this->input->post('nombre', true),
'correo' => $this->input->post('correo', true),
'usuario' => $this->input->post('user', true),
'pass' => $this->input->post('pass', true),
'codigo' => '123456',
'estado' => '0'
));
}
}
还有风景
<html>
<body>
<h1>Registrar Usuario</h1>
<?php if(isset($mensaje)): ?>
<h2><?= $mensaje; ?></h2>
<?php endif; ?>
<form name="form_reg" action="<?= base_url().'usuarios/registro_very' ?>" method="post">
<label for="Nombre">Nombre</label>
<input type="text" name="nombre" value="<?= @set_value('nombre') ?>"><br>
<label for="Correo">Correo</label>
<input type="text" name="correo" value="<?= @set_value('correo') ?>"><br>
<label for="usuario">usuario</label>
<input type="text" name="user" value="<?= @set_value('user') ?>"><br>
<label for="Contraseña">Contraseña</label>
<input type="password" name="pass" value="<?= @set_value('pass') ?>"><br>
<input type="submit" value="Registrar" name="submit_reg">
<a href="<?= base_url().'usuarios/' ?>" title="Iniciar Sesión">Iniciar Sesión</a>
</form>
<hr> <?= validation_errors(); ?>
</body>
</html>
【问题讨论】:
标签: php codeigniter validation