使用is_unique格式验证会导致“ USERNAME字段必须包含唯一值。”错误信息

时间:2019-08-31 07:45:13

标签: php codeigniter

我正在做一项家庭作业,要求用户创建一个帐户并需要用户名和密码。我正在使用is_unique [users.user_name]仅保存唯一的用户名,但无法通过验证。我不断收到“ USERNAME字段必须包含唯一值。”错误消息。

<?php
class Register extends CI_Controller{

  public function __construct(){
    parent::__construct();

  }

  public function index(){
    $data['title'] = 'Register';
    $this->load->view('register', $data);
  }

  public function verify(){
    $this->form_validation->set_rules('txtfname', 'FIRST NAME', 'required|trim');
    $this->form_validation->set_rules('txtlname', 'LAST NAME', 'required|trim');
    $this->form_validation->set_rules('txtmname', 'MIDDLE NAME', 'required|trim');
    $this->form_validation->set_rules('txtgender', 'GENDER', 'required');
    $this->form_validation->set_rules('txtbday', 'BIRTHDAY', 'required');
    $this->form_validation->set_rules('txtcountry', 'COUNTRY', 'required|trim');
    $this->form_validation->set_rules('txthouse_no', 'FLOOR / DEPT / BUILDING / HOUSE NO', 'required|trim');
    $this->form_validation->set_rules('txtstreet', 'STREET', 'required|trim');
    $this->form_validation->set_rules('txtcity_province', 'CITY / PROVINCE', 'required|trim');
    $this->form_validation->set_rules('txtpostal_code', 'POSTAL CODE', 'required|trim');
    $this->form_validation->set_rules('txtphone', 'PHONE', 'required|trim');
    $this->form_validation->set_rules('txtemail', 'E-MAIL ADDRESS', 'required|trim|valid_email');
    $this->form_validation->set_rules('txtuser', 'USERNAME', 'required|trim|is_unique[users.user_name]');
    $this->form_validation->set_rules('txtpass', 'PASSWORD', 'required');
    $this->form_validation->set_rules('txtrepass', 'RE-TYPE ADDRESS', 'required|matches[txtpass]');

    if($this->form_validation->run() === TRUE){
      $this->load->model('register_model');
      $isRegistered = $this->register_model->register();

      if($isRegistered){
        $data['title'] = 'Registration Successful';
        $data['message'] = 'Please check your email to activate your account.';
      } else {
        $data['title'] = 'Registration Failed';
        $data['message'] = 'Something went wrong. Please try again later.';
      }

      $this->load->view('registration_message', $data);

    } else {
      $this->index();
    }

  }

}
?>



<?php
class register_model extends CI_Model{
  public function construct(){
    parent::__construct();
    $this->load->database();
  }

  public function register(){
    $personal_info = array(
        'cust_lname' => $this->input->post('txtlname'),
        'cust_fname' => $this->input->post('txtfname'),
        'cust_mname' => $this->input->post('txtmname'),
        'cust_bday' => $this->input->post('txtbday'),
        'cust_gender' => $this->input->post('txtgender'),
        'cust_country' => $this->input->post('txtcountry'),
        'cust_house_no' => $this->input->post('txthouse_no'),
        'cust_street' => $this->input->post('txtstreet'),
        'cust_area' => $this->input->post('txtarea'),
        'cust_city_province' => $this->input->post('txtcity_province'),
        'cust_postal_code' => $this->input->post('txtpostal_code'),
        'cust_phone' => $this->input->post('txtphone'),
        'cust_email' => $this->input->post('txtemail'),
        'cust_dateRegistered' => date('Y-m-d H:i:s'),
      );
    $isCustomer_added = $this->db->insert('customers', $personal_info);

    $userAccess_info = array(
      'user_name' => $this->input->post('txtuser'),
      'user_pass' => md5($this->input->post('txtpass')),
      'user_lvl' => 2,
      'cust_id' => $this->db->insert_id(),
      'isApproved' => 0
      );
    $isUser_added = $this->db->insert('users', $userAccess_info);

    if($isCustomer_added && $isUser_added){
      return true;
    } else {
      return false;
    }
  }
}
?>

我希望将用户信息保存在数据库中,但是我一直在获取“ USERNAME字段必须包含唯一值”。验证错误消息。

0 个答案:

没有答案