Передать адрес электронной почты по сеансу между двумя контроллерами в codeigniter - PullRequest
0 голосов
/ 20 мая 2018
public function registration()
{
    $data = array();
    $userData = array();

    if($this->input->post('regisSubmit')){
        $this->form_validation->set_rules('name', 'Name', 'required');
        $this->form_validation->set_rules('email', 'Email', 'required|valid_email|callback_email_check');
        $this->form_validation->set_rules('password', 'password', 'required');
        $this->form_validation->set_rules('conf_password', 'confirm password', 'required|matches[password]');

        $userData = array(
            'name' => strip_tags($this->input->post('name')),
            'email' => strip_tags($this->input->post('email')),
            'password' => md5($this->input->post('password')),
            'gender' => $this->input->post('gender'),
            'phone' => strip_tags($this->input->post('phone'))
        );

        if($this->form_validation->run() == true){
            $insert = $this->user->insert($userData);
            if($insert){



                redirect('email');
            }else{
                $data['error_msg'] = 'Some problems occured, please try again.';
            }
        }
    }
    $data['user'] = $userData;
    //load the view
    $this->load->view('users/registration', $data);
}

Это функция моего регистрационного контроллера.Я хочу передать адрес электронной почты моему другому контроллеру: send_email и использовать этот код для отправки электронной почты пользователю.

$this->email->to('user_email'); Я пытался использовать функцию сеанса для передачи переменной, но не удалось.что мне делать?

1 Ответ

0 голосов
/ 20 мая 2018

Надеюсь, это поможет вам:

Примечание: вам нужно загрузить session библиотеку в autoload.php, если она не загружена, а также избежатьmd5 для шифрования пароля используйте password_hash вместо

Затем необходимо создать email сессию до redirect();

Структура кода должна выглядеть следующим образом

if($this->form_validation->run() == true)
{      
  $insert = $this->user->insert($userData);
  if($insert)
  {
    $this->session->set_userdata('email',$userData['email']);
    redirect('email');   
  }else
  {
    $data['error_msg'] = 'Some problems occured, please try again.';
  }
}

Используйте сеанс в send_email методе, подобном этому

public function send_email()
{
   $email = $this->session->userdata('email');
   echo $email;
   /* 
    $this->email->to($email);
    do whatever u want
   */
 }

для получения дополнительной информации: https://www.codeigniter.com/user_guide/libraries/sessions.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...