2016-10-31 6 views
-1

私はCodeigniterを新しくしました。私は電子メールアドレスを使用してログインユーザーを登録しようとしています。リンクのアクティベーションがユーザーに送信され、ユーザーが自分のアカウントをアクティブにしたい場合は、常にアカウントを確認できませんでした。 助けてください?電子メールアカウントを確認できませんCodeigniter

ここに私のコードです。

ありがとうございました。

答えて

1

モデルを書き換えて、verifyEmailID(param)メソッドで値を返してください

function verifyEmailID($key) 
{ 
    $condition=md5($key); 
    $data = array('status' => 1); 
    $this->db->where($condition, $key); 
    $varify=$this->db->update('user', $data); 
    if($varify==true) { 
     return true; 
    } 
    return false; 
} 
+0

ありがとうジョン。あなたは私の人生を救う。 –

+0

親愛なる、@BIBIN JOHNさんのステータスは変わりません。 –

0

$keyは既にMD5で電子メールを変換するよりもverifyEmailID()の方法でMD5に変換されていることに注意してください。

$this->db->where('md5(email)', $key); // $key already MD5 

ので、あなたはここにあなたのURLにmd5()機能を使用している:あなたのコードで

site_url('voter/voter_register/verify/'.md5($to_email)) 

、あなたはWHERE句からmd5()方法を削除する場合、これは動作しますように:

$this->db->where('email', $key); 
+0

提案のためのおかげで、今で固定 –

+0

@BagusBalaは次のとおりです。 – devpro

+0

親愛なる、氏のuを助けるために喜ん@ devproは、データベースの状態が変わらない理由を教えてくれますか?すでに設定していますが、変更はありません –

0

私の新しいモデル。

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
 

 
class Voter_model extends CI_Model 
 
{ 
 
\t 
 
\t \t 
 
    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(); 
 
    } 
 
\t 
 
\t 
 
\t //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 = '[email protected]'; //change this to yours 
 
     $subject = 'Aktivasi Akun'; 
 
     $message = 'Hallo'. $username .'<br /><br />Silakan klik link dibawah ini untuk mengkonfirmasi akun Anda pada Sistem E-voting Desa Pakraman Cucukan.<br /><br /> 
 
    '. site_url('voter/voter_register/verify/'.md5($to_email)) . '<br /><br /><br />Terima Kasih<br />Admin Evoting'; 
 
     
 
     //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'] = 'evoting2016'; //$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) 
 
\t { 
 
    $data = array('status' => 1); 
 
    $this->db->where('email', $key); 
 
    $verifed=$this->db->update('user', $data); 
 
    if($verifed==true) 
 
\t \t { 
 
     \t return true; 
 
     \t } 
 
    \t \t return false; 
 
\t } 
 

 
\t 
 
\t 
 
}?>

そして私の新しいコントローラー

<?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(); 
 
    } 
 
\t 
 
\t 
 
\t 
 
    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'), 
 
\t \t \t \t 'username' => $this->input->post('username'), 
 
\t \t \t \t 'voting'=> 1, 
 
\t \t \t \t 'status'=> 0 
 
\t \t \t \t 
 
      ); 
 
      
 
      // 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) 
 
    { 
 
\t \t $this->load->helper('url'); 
 
    \t \t $this->load->model('voter_model'); 
 

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

関連する問題