私はCodeigniterを新しくしました。私は電子メールアドレスを使用してログインユーザーを登録しようとしています。リンクのアクティベーションがユーザーに送信され、ユーザーが自分のアカウントをアクティブにしたい場合は、常にアカウントを確認できませんでした。 助けてください?電子メールアカウントを確認できませんCodeigniter
ここに私のコードです。
ありがとうございました。
私はCodeigniterを新しくしました。私は電子メールアドレスを使用してログインユーザーを登録しようとしています。リンクのアクティベーションがユーザーに送信され、ユーザーが自分のアカウントをアクティブにしたい場合は、常にアカウントを確認できませんでした。 助けてください?電子メールアカウントを確認できませんCodeigniter
ここに私のコードです。
ありがとうございました。
モデルを書き換えて、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;
}
$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);
提案のためのおかげで、今で固定 –
@BagusBalaは次のとおりです。 – devpro
親愛なる、氏のuを助けるために喜ん@ devproは、データベースの状態が変わらない理由を教えてくれますか?すでに設定していますが、変更はありません –
私の新しいモデル。
<?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');
}
}
}
?>
ありがとうジョン。あなたは私の人生を救う。 –
親愛なる、@BIBIN JOHNさんのステータスは変わりません。 –