2016-12-06 4 views
-1

Я пытаюсь зарегистрировать нового пользователя с моим MVC, все хорошо, кроме проверки доступности, что я хочу проверить, что имя пользователя и адрес электронной почты уже есть в базе данных или нет, с ошибкой, если она недоступна при новой регистрации. Я новичок в CodeIgniter, вам нужна помощь в этом. Это мой контроллерКак проверить доступность для пользователя и адреса электронной почты в codeigniter?

<?php 
class Add_new_user extends CI_Controller { 
    function index(){ 
     $this->load->view('signup_view');// loading form view 
    } 

function insert_into_db(){ 
    $user = array(
      "fname" => $_POST["fname"], 
      "lname" => $_POST["lname"], 
      "email" => $_POST["email"], 
      "username" => $_POST["username"], 
      "gender" => $_POST["gender"], 
      "phone" => $_POST["phone"], 
      "address" => $_POST["address"], 
      ); 

    $this->load->model('signup_model'); 
    $result=$this->signup_model->insert_into_db($user);  


    if($result==1){ 
     $this->load->view('thanks_page'); 
    } 
    } 
    } 
?> 

Это моя модель

<?php 

class Signup_model extends CI_Model{ 

    public function __construct() { 
     parent::__construct(); 
     } 
    function insert_into_db($data) 
    { 
      if( 

      $result=$this->db->insert('gymers', $data)) { 
       return $result; 
      } 
      else { 
       echo "ERROR"; 
      } 
     } 
    } 
?> 

Пожалуйста, помогите в этом. Спасибо.

ответ

0
<?php 
class Add_new_user extends CI_Controller 
{ 
    function Add_new_user() { 
     parent ::__construct(); 
     $this->load->helper('url'); 
     $this->load->library('session'); 
    } 
    function index(){ 
     $this->load->view('signup_view');// loading form view 
    } 

function insert_into_db(){ 
    $user = array(
      "fname" => $_POST["fname"], 
      "lname" => $_POST["lname"], 
      "email" => $_POST["email"], 
      "username" => $_POST["username"], 
      "gender" => $_POST["gender"], 
      "phone" => $_POST["phone"], 
      "address" => $_POST["address"], 
      ); 
    $user_chk_data['email'] = $_POST["email"]; 
    $user_chk_data['username'] = $_POST["username"]; 
    $this->load->model('signup_model'); 
    $user_data = $this->signup_model->check_username_email($user_chk_data); 

    if(!empty($user_data)) 
    { 
     $this->session->set_flashdata('error_msg', 'User already registered.'); 
     redirect('add_new_user'); 
    } 
    else 
    { 
     $result=$this->signup_model->insert_into_db($user); 
     $this->load->view('thanks_page'); 
    }  
    } 
    } 
?> 

ваш Файл модели

<?php 

class Signup_model extends CI_Model{ 

public function __construct() { 
    parent::__construct(); 
    } 
function insert_into_db($data) 
{ 
     if($result=$this->db->insert('gymers', $data)) 
     { 
      return TRUE 
     } 
     else { 
      return FALSE 
     } 
    } 
function check_username_email($user_data) 
{ 

    $this->db->select("*"); 
    $this->db->from("gymers"); 
    $this->db->where("email",$user_data['email']); 
    $this->db->where("username",$user_data['username']); 

    $query_data = $this->db->get()->row_array(); 
    return $query_data; 
} 

} 
?> 

и проверить flashdata сообщение в signup_view файле

<?php if($this->session->flashdata('error_msg') != ''){?> 
     <span><?php echo $this->session->flashdata('error_msg');?></span> 
<?php } ?> 

попробовать это .../..../

+0

, и если вы не загрузите библиотеку сеансов, загрузите ее! –

+0

Это классный брат, это сработало. Большое спасибо. Можете ли вы дать мне еще одну услугу? –

+0

Да, конечно! Какая польза? –

0

Вы должны использовать форму валидации Codeigniter

В контроллере

public function index() 
{ 
    $this->load->helper(array('form','url')); 
    $this->load->library(array('session', 'form_validation', 'email')); 

    $this->form_validation->set_rules('email', 'Email Address', 'trim|required|valid_email|is_unique[db_table.col_email]'); 
    // other rule if any. 

    //validate form input 
    if ($this->form_validation->run() == FALSE) 
    { 
    $this->load->view('signup_view');// loading form view 
    } else { 
    // Form success 
    // insert to db. 
    } 
} 

Посмотреть

<?php 
    $attributes = array("class" => "contact-form2 con_center2", "name" => "contactform", "id" => "contact-form2"); 
    echo form_open("Add_new_user/index", $attributes); ?> 

    <!-- Your inputs are here. --> 
    <input type="text" name="email" placeholder="Email*" value="<?php echo set_value('email'); ?>" required/> 
    <span class="text-danger"><?php echo form_error('email'); ?></span> 

<?php echo form_close(); ?> 

Do см this, как учебник, а также

+0

Спасибо за помощь, но я до сих пор там. Код по-прежнему вставляет данные в базу данных с повторяющимися записями. –

+0

'is_unique [db_table.col_email]' 'db_table' - это имя таблицы, а' col_email' - это имя столбца, в котором сохраняется адрес электронной почты. –

 Смежные вопросы

  • Нет связанных вопросов^_^