创建功能以验证现有用户/新用户

时间:2013-08-07 04:03:33

标签: php codeigniter

如何检查用户是否已存在于数据库中。我可以创建用户但不太确定如何检查用户是否已存在于数据库中。这是我的代码: 查看文件

<?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'");
}

3 个答案:

答案 0 :(得分: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');

答案 1 :(得分: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.
}

答案 2 :(得分:0)

根据需要更改模型。电子邮件对每个用户都是唯一的

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; }
  }