У меня есть этот метод:
public function activation_code()
{ //activation code sent into db
$activation_code = random_string('alnum', 32);
return $activation_code;
}
Я пытаюсь предоставить этому данные почты, которые отправляются в мою базу данных, но также предоставить копию того же кода активации, чтобы я могобъедините его с URL-адресом «нажмите здесь, чтобы подтвердить адрес электронной почты», который указан в электронном письме с подтверждением, которое отправляется пользователям при регистрации.
Как я могу это сделать?Я не могу предоставить метод, потому что если я сделаю код базы данных, и код URL электронной почты будет отличаться, поэтому пользователь не сможет сопоставить их и подтвердить свой адрес электронной почты.
Я пробовал много другихтакие способы, как предоставление метода в одном месте, например
public function create()
{ //get post data and insert into db
$dbcolumn->group_id = 2; //group 1 for admin group 2 for member
$dbcolumn->first_name = $this->input->post('first_name');
$dbcolumn->last_name = $this->input->post('last_name');
$dbcolumn->email = $this->input->post('email');
$dbcolumn->password = $this->hashed();
$dbcolumn->birthday = $this->input->post('year') .
'-' . $this->input->post('month') . '-' . $this->input->post('day');
$dbcolumn->sex = $this->input->post('sex');
$dbcolumn->activation_code = $this->activation_code();
// date and time user joined the website
$dbcolumn->created_on = date('Y-m-d H:i:s', now());
$this->db->insert('users', $dbcolumn);
}
Если вы посмотрите на строку кода активации dbcolumn->, вы увидите, что я сделал.Это работает, и код хранится в базе данных.Если я предоставлю тот же метод "$ this-> activ_code () для отправленного электронного письма, очевидно, что коды будут другими.
public function send_confirmation_email()
{ //receives variable from create method
$this->load->library('email');
$this->email->from('wengerarsen@gmail.com', 'my site');
$this->email->to($this->input->post('email'));
$this->email->subject('my site - Activate your account');
//copy of activation code returned from create method
$this->email->message('We\'re back, please click the link to activate your account ' . anchor('http://mysite.com/activation/' . $this->activation_code(), 'Activate my account'));
$this->email->send();
}
Как видите, у меня есть тот же метод, который $ $мой метод подтверждения отправки по электронной почте. Это просто сгенерирует совершенно новый код, означающий, что я не смогу сопоставить код активации базы данных и код сегмента URI в электронном письме пользователя.
Я попытался создать переменнуюв ответной команде public и вызовите его с помощью метода электронной почты с подтверждением отправки, но он не работает. Код заканчивается отсутствием в конце URL-адреса в электронном письме.
Я пробовал так много разных способов иничего не работает.
Может быть, я что-то здесь упускаю?
Советы, примеры и т. д. будут высоко ценится.