Почему страница загружается так долго? - PullRequest
0 голосов
/ 07 июня 2018

Я создаю страницу регистрации, когда пользователь заполняет форму и нажимает кнопку отправки.Время загрузки до следующей страницы очень велико, иногда даже возникает ошибка: «Превышено максимальное время выполнения 30 секунд в CodeIgniter».Библиотека электронной почты CodeIgniter занимает так много времени?или есть код, который я написал неправильно?

Контроллер:

class Register extends CI_Controller {

public function index()
{
    $profile['first_name']  = $this->input->post('first_name');
    $profile['last_name']   = $this->input->post('last_name');
    $account['email']       = $this->input->post('email');
    $account['password']    = password_hash($this->input->post('password'), PASSWORD_DEFAULT);
    $account['permissions'] = '2';
    $account['code']        = bin2hex(random_bytes(2));
    $data['recaptcha']      = $this->recaptcha->create_box();
    $data['error']           = NULL;

    if ($this->session->userdata('logged_in') != NULL) {
        redirect('dashboard');
    }

    if($this->input->post('action') === 'submit') {
        $is_valid = $this->recaptcha->is_valid();

        if($is_valid['success']) {
            $email = $account['email'];
            $result = $this->Register_model->auth($email);
            if ($result == 0) {
                $id = $this->Register_model->insert_account($account);
                $profile['id_account'] = $id;
                $this->Register_model->insert_profile($profile);

                $newdata = array(
                    'first_name' => $profile['first_name'],
                    'email'      => $email,
                    'code'       => $account['code']
                );

                $this->email->set_newline("\r\n");
                $this->email->from('example@email.com', 'Example Email');
                $this->email->to($email);
                $this->email->subject('Example Subject');
                $this->email->message($this->load->view('frontend/register_email',$newdata,TRUE));
                $this->email->send();

                $this->session->set_userdata('email',$email);
                redirect('confirm/auth');
            }
            else {
                $data['error'] = 'Already registered!';
            }
        }
        else {
            $data['error'] = 'reCAPTCHA error';
        }
    }
    $this->load->view('frontend/layout/header');
    $this->load->view('frontend/register',$data);
    $this->load->view('frontend/layout/footer');
}

Модель:

class Register_model extends CI_Model {

public function auth($email)
{
    $this->db->where('email', $email);
    $this->db->from('account');
    return $this->db->count_all_results();
}

public function insert_account($account)
{
    $this->db->insert('account',$account);
    return $this->db->insert_id();
}

public function insert_profile($profile)
{
    $this->db->insert('profile',$profile);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...