2013-08-07 57 views
-2

如何檢查用戶是否已經存在於數據庫中。我可以創建用戶,但不是很確定如何檢查用戶是否已經存在於數據庫中。這裏是我的代碼: 視圖文件創建函數來驗證現有用戶/新用戶

<?php echo $this->navigasi->top(); ?> 

<div class="container"> 
    <br> 
    <h4 style="margin:0 auto;width:650px;">CREATE USER ACCOUNT</h4> 
    <br> 
    <form class="form-horizontal the-form" method="post" action="<?php echo base_url(); ?>admin/register_account"> 
    <?php echo $this->session->flashdata('mesej'); ?> 
     <div class="control-group"> 
      <label class="control-label">Name Staff:</label> 
      <div class="controls"> 
       <input type="text" required name="nama_staf" class="input-xlarge"> 
      </div> 
     </div> 

     <div class="control-group"> 
      <label class="control-label">Password:</label> 
      <div class="controls"> 
       <input type="password" required name="kata_laluan" class="input-xlarge"> 
      </div> 
     </div> 

     <div class="control-group"> 
      <label class="control-label"> Email:</label> 
      <div class="controls"> 
       <input type="email" name="email" class="input-xlarge"> 
      </div> 
     </div> 

     <div class="control-group"> 
      <label class="control-label">Position:</label> 
      <div class="controls"> 
       <select name="jawatan" class="span3" id="jawatan"> 
       <option value="1">Clerk</option> 
       <option value="2">Technician</option> 
       <option value="3">Assitant officer</option> 
       <option value="4">Officer</option>     
       <option value="5">Director</option>     
       </select> 
      </div> 
     </div> 

     <div class="control-group"> 
      <label class="control-label">No. Staff:</label> 
      <div class="controls"> 
       <input type="text" required name="no_staf" class="input-xlarge"> 
      </div> 
     </div> 

     <div class="control-group"> 
      <label class="control-label"></label> 
      <div class="controls"> 
       <button type="submit" class="btn btn-primary"><i class="icon-user icon-white"></i> Register</button>&nbsp;&nbsp; 

控制器文件

class Admin extends MY_Controller { 

public function index() 
{ 
    $session_data = $this->session->userdata('account'); 
    $data['sesi_jenis'] = $session_data['jenis']; 

    if($data['sesi_jenis'] < 1) 
    { 
     redirect('utama'); 
    } else { 
     $this->load->view('view-utama-pentadbir'); 
    } 
} 

public function register() 
{ 
    $this->load->view('view-create-account'); 
} 

public function register_account() 
{ 
    $query = $this->modeluser->createAccount(); 

    $this->session->set_flashdata('mesej', '<span class="label label-info">Account created!</span> '); 
    redirect(base_url().'admin/register'); 

模型文件

class ModelUser extends CI_Model { 

public function creatAccount() 
{ 
    $nameStaf = $_POST['nama_staf']; 
    $noStaf  = $_POST['no_staf']; 
    $email  = $_POST['email']; 
    $password = sha1($_POST['password']); 
    $jenis  = 0; // user is 0 - admin is 1 
    $position = $_POST['position']; 

    $this->db->query("INSERT INTO akaun (nama_staf,no_staf,email,password,jenis,position) VALUES ('$namaStaf','$noStaf','$email','$password','$jenis','$position')"); 

} 

public function padamAkaun($no_staf) 
{ 
    $this->db->query("DELETE FROM akaun WHERE no_staf = '$no_staf'"); 
} 
+0

可以插入 – BitHigher

+0

之前執行給定的用戶名和電子郵件查詢嘗試用電子郵件id.If電子郵件ID檢查存在,那麼說用戶alderady存在。 –

+0

這意味着我應該在插入模型之前使用形式驗證創建代碼? – user2655325

回答

0

變化模型per.considering電子郵件是每個用戶

獨特
class ModelUser extends CI_Model { 

    public function creatAccount() 
    { 
     $nameStaf = $_POST['nama_staf']; 
     $noStaf  = $_POST['no_staf']; 
     $email  = $_POST['email']; 
     $password = sha1($_POST['password']); 
     $jenis  = 0; // user is 0 - admin is 1 
     $position = $_POST['position']; 
     if ($this->checkEmailExist($email) == false) 
      return 'ERROR! DUPLICATE USER';// or handle as you like 
     $this->db->query("INSERT INTO akaun (nama_staf,no_staf,email,password,jenis,position) 
     VALUES ('$namaStaf','$noStaf','$email','$password','$jenis','$position')"); 

    } 


    public function padamAkaun($no_staf) 
    { 
     $this->db->query("DELETE FROM akaun WHERE no_staf = '$no_staf'"); 
    } 


    private function checkEmailExist($email) 
    { 
    $this->db->where('email', $email); 
    $query = $this->db->get('akaun'); 
    if($query->num_rows() == 0){ return TRUE; } else { return FALSE; } 
    } 
+0

thic的代碼收到錯誤行$ user_count ...致命錯誤:調用未定義的函數結果...我更喜歡使用用戶名,而不是電子郵件ID – user2655325

+0

我沒有代碼點火器現在。請使用result_array函數。天氣它有幫助。或只是搜索出 – Notepad

+0

嗨susheel ...感謝您的更正,但你可以讓它爲我工作? – user2655325

1
In your controller function set validation rule as: 
$this->form_validation->set_rules('email', 'Email', trim|required|valid_email|is_unique[tabelname.columnname]|xss_clean'); 
+0

這不工作... – user2655325

+0

任何人都可以解決這個??? – user2655325

+0

適合我。 –

1
$this->form_validation->set_rules('email', 'Email','trim|required|valid_email|is_unique[tabelname.columnname]|xss_clean'); 
$this->form_validation->set_error_delimiters('<div class="error">', '</div>'); 
if($this->form_validation->run() == TRUE) 
{ 
// action after validation success. 
}else{ 
//action after validation failure. 
} 
相關問題