Changeset 19225 for events/phpframework

Show
Ignore:
Timestamp:
09/12/08 17:55:02 (6 years ago)
Author:
kenji
Message:

Add username/email unique checking

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • events/phpframework/codeigniter/trunk/system/application/controllers/signup.php

    r19194 r19225  
    1212        function index()  
    1313        { 
     14                $this->load->database(); 
    1415                $this->load->library('validation'); 
    15                 $this->validation->set_error_delimiters('<font color="red">', '</font>'); 
     16                $this->validation->set_error_delimiters('<div class="red">', '</div>'); 
    1617 
    1718                // Required Field Rules. 
    18                 $rules['username']              = "trim|required|min_length[3]|max_length[100]"; 
     19                $rules['username']              = "trim|required|alpha_dash|min_length[3]|max_length[100]|callback_check_username"; 
    1920                $rules['password']              = "trim|required|alpha_numeric|min_length[6]|max_length[64]|matches[password2]"; 
    2021                $rules['password2']     = "trim|required|alpha_numeric|min_length[6]|max_length[64]"; 
    21                 $rules['email']                 = "trim|required|valid_email|max_length[255]"; 
     22                $rules['email']                 = "trim|required|valid_email|max_length[255]|callback_check_email"; 
    2223                //$rules['question']            = "required|max_lenght[80]"; 
    2324                //$rules['answer']              = "required|max_lenght[40]"; 
     
    9697        } 
    9798 
     99        function check_username($username) 
     100        { 
     101                $this->db->select('id'); 
     102                $query = $this->db->get_where('users', array('username' => $username)); 
     103 
     104                if ($query->num_rows() > 0) 
     105                { 
     106                        $this->validation->set_message('check_username', '%s はすでに登録されています。'); 
     107                        return FALSE; 
     108                } 
     109                else 
     110                { 
     111                        return TRUE; 
     112                } 
     113        } 
     114 
     115        function check_email($email) 
     116        { 
     117                $this->db->select('id'); 
     118                $query = $this->db->get_where('users', array('email' => $email)); 
     119 
     120                if ($query->num_rows() > 0) 
     121                { 
     122                        $this->validation->set_message('check_email', '%s はすでに登録されています。'); 
     123                        return FALSE; 
     124                } 
     125                else 
     126                { 
     127                        return TRUE; 
     128                } 
     129        } 
     130 
    98131        function activate($code = '') 
    99132        {