Below is a simple program which shows email verification confirmation using a unique code, implemented in PHP,Mysql, Codeigniter.
PHP Codeigniter Email Verification
Step 1 :Create a table as shown below with email_verification_code as necessary column:
[mysql]
CREATE TABLE `users` (
`user_id` int(10) NOT NULL auto_increment,
`first_name` varchar(45) NOT NULL,
`last_name` varchar(45) NOT NULL,
`email_verification_code` varchar(45) NOT NULL,
`user_status` varchar(45) NOT NULL,
PRIMARY KEY (`user_id`)
);
[/mysql]
Step 2:Map your verify method of main controller using routing.
Add below below line code in routes.php file which is located at
“system/application/config/routes.php”$route[‘verify/(:any)’] = “/main/verify/$1”;
Step 3: Create controller class (main.php) which will send email to user for verification.
Add a user into users table, along with email_verification_code which has to be unique.
This unique email_verification_code value can be obtained from below code.
$verificationCode = random_string(‘alnum’, 20);
verify() is used to verify the email_verification_code which will be send confirmation code on clicking the link
Please click on below URL or paste into your browser to verify your Email Address.
"; $email_msg .= "http://yourdomain/user/verify/" . $verificationCode; $email_msg .= "Thanks, Support Team"; $subject = "Email Verification"; $this->load->library('email'); $config['charset'] = 'iso-8859-1'; $config['wordwrap'] = TRUE; $config['mailtype'] = 'html'; $this->email->initialize($config); $this->email->from('admin@yourdomain.com', 'Support Team'); $this->email->to($email); $this->email->subject($subject); $this->email->message($email_msg); $this->email->send(); // Insert user record } function verify($verificationText=NULL) { $this->load->model('user_model'); $noOfRecords = $this->user_model->verifyEmailAddress($verificationText); if ($noOfRecords > 0) { $this->session->set_flashdata('success', "Email Verified Successfully! Please login below."); redirect('user/login'); } else { $this->session->set_flashdata('success', "Sorry! Unable to verify your email. Please try again."); redirect('user/login'); } } } ?>
User will receive a confirmation email link, the user need to click on the confirmation link to complete the verification process.
Step 4: Verify the email_verification_code and update the user_status to 1 if the code is valid.
load->database(); } public function verifyEmailAddress($verificationCode) { $this->db->set('user_status', 1) ->where('email_verification_code', $verificationCode) ->update('users'); return $this->db->affected_rows(); } } ?>