• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Confirmations Email

#1
Exclamation 
Hello,

i'm new in Codeigniter. I'm try to make login and registration user with email address. Link activation has been sended to user , and if user want to active their account its always failed to confirm the account. Any help ?

Here is my code.

Model


PHP Code:
class Voter_model extends CI_Model
{
    
        
 
    function __construct()
 
    {
 
         // Call the Model constructor
 
         parent::__construct();
 
    }

 
    //get the username & password from tbl_usrs
 
    function get_user($username$password)
 
    {
 
         $sql "select * from user where username = '" $username "' and password = '" $password "' and status = '1'";
 
         $query $this->db->query($sql);
 
         return $query->num_rows();
 
    }
     
     
     
//insert into user table
 
   function insertUser($data)
 
   {
 
       return $this->db->insert('user'$data);
 
   }
 
   
    
//send verification email to user's email id
 
   function sendEmail($to_email)
 
   {
 
       $from_email '@gmail.com'//change this to yours
 
       $subject 'Aktivasi Akun';
 
       $message 'Dear'$username .'<br /><br />Please click on the below activation link to verify your email address.<br /><br /> 
  '
site_url('voter/voter_register/verify/'.md5($to_email)) . '<br /><br /><br />Thanks<br />Admin, Gus bala';
 
       
        
//configure email settings
 
       $config['protocol'] = 'smtp';
 
       $config['smtp_host'] = 'ssl://smtp.googlemail.com'//smtp host name
 
       $config['smtp_port'] = '465'//smtp port number
 
       $config['smtp_user'] = $from_email;
 
       $config['smtp_pass'] = ''//$from_email password
 
       $config['mailtype'] = 'html';
 
       $config['charset'] = 'iso-8859-1';
 
       $config['wordwrap'] = TRUE;
 
       $config['newline'] = "\r\n"//use double quotes
 
       $this->email->initialize($config);
 
       
        
//send mail
 
       $this->email->from($from_email'Admin Evoting');
 
       $this->email->to($to_email);
 
       $this->email->subject($subject);
 
       $this->email->message($message);
 
       return $this->email->send();
 
   }
 
   
    
//activate user account
 
   function verifyEmailID($key)
 
   {
 
       $data = array('status' => 1);
 
       $this->db->where('md5(email)'$key);
 
       $this->db->update('user'$data);
 
   


and here is my Controller.


PHP Code:
<?php
class Voter_register extends CI_Controller
{
 
   public function __construct()
 
   {
 
       parent::__construct();
 
       $this->load->helper(array('form','url'));
 
       $this->load->library(array('session''form_validation''email'));
 
       $this->load->database();
 
       $this->load->model('Voter_model');
 
   }
 
   
    function index
()
 
   {
 
       $this->register();
 
   }
    
    
    
 
   function register()
 
   {
 
       //set validation rules
 
       
        $this
->form_validation->set_rules('email''Email ID''trim|required|valid_email|is_unique[user.email]');
 
       $this->form_validation->set_rules('password''Password''trim|required|matches[cpassword]');
 
       $this->form_validation->set_rules('cpassword''Confirm Password''trim|required');
 
       
        
//validate form input
 
       if ($this->form_validation->run() == FALSE)
 
       {
 
           // fails
 
           $this->load->view('voter/voter_register');
 
       }
 
       else
        
{
 
           //insert the user registration details into database
 
           $data = array(
 
               'fname' => $this->input->post('fname'),
 
               'lname' => $this->input->post('lname'),
 
               'email' => $this->input->post('email'),
 
               'password' => $this->input->post('password'),
                 
'username' => $this->input->post('username')
 
           );
 
           
            
// insert form data into database
 
           if ($this->Voter_model->insertUser($data))
 
           {
 
               // send email
 
               if ($this->Voter_model->sendEmail($this->input->post('email')))
 
               {
 
                   // successfully sent mail
 
                   $this->session->set_flashdata('msg','<div class="alert alert-success text-center">Registrasi Sukses, silakan cek e-mail Anda untuk melakukan konfirmasi dan aktivasi akun.</div>');
 
                   redirect('admin_voter');
 
               }
 
               else
                
{
 
                   // error
 
                   $this->session->set_flashdata('msg','<div class="alert alert-info text-center">Registrasi Sukses, gagal mengirim e-mail verifikasi.</div>');
 
                   redirect('admin_voter');
 
               }
 
           }
 
           else
            
{
 
               // error
 
               $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
 
               redirect('admin_voter');
 
           }
 
       }
 
   }
 
   
    function verify
($hash)
 
   {
        
$this->load->helper('url');
         
$this->load->model('voter_model');

 
       if ($this->voter_model->verifyEmailID($hash))
 
       {
 
           
            $this
->load->view('voter/voter_aktivasiok');
 
       }
 
       else
        
{
 
          
            $this
->load->view('voter/voter_aktivasifail');
 
       }
 
   }
}
?>

Thanks for any help.
Reply

#2
You not set return value of verifyEmailID() yet. Try

PHP Code:
if ($this -> db -> affected_rows() > 0) { return true; } else { return false; } 
Reply

#3
(10-31-2016, 05:42 PM)AzrielOmega Wrote: You not set return value of verifyEmailID() yet. Try

PHP Code:
if ($this -> db -> affected_rows() > 0) { return true; } else { return false; } 

Error is fixed. Thanks
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2019 MyBB Group.