Почему страница так долго загружается?

Я создаю страницу регистрации, когда пользователь заполняет форму и нажимает кнопку отправки. Время загрузки следующей страницы очень велико, иногда даже возникает ошибка: «Превышено максимальное время выполнения 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('[email protected]', '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);
}

Я не слишком подозрительно отношусь к электронной почте, но это запрос, который я использую в своем коде для вставки в базу данных. На это уходит много времени?

Anonymous 07.06.2018 10:46

Времени мало! password_hash имеет небольшую задержку. Может помочь нам составить приблизительное представление о вашем почтовом транспорте, но удаление первой части (электронной почты) - хорошая идея.

Progrock 07.06.2018 10:48

Любое удаленное согласование может занять много времени, что-то вроде SMTP-чата / сеанса с почтовым сервером. В этом отношении очереди хороши.

Progrock 07.06.2018 10:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
49
0

Другие вопросы по теме