php - 为什么页面加载这么久?
问题描述
当用户填写表格并单击提交按钮时,我正在创建一个注册页面。到下一页的加载时间很长,有时甚至会出现错误:“CodeIgniter 中超过了 30 秒的最大执行时间”。“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);
}
解决方案
推荐阅读
- sql - 我需要将此查询限制为 1000 条记录并在 TOTAL 字段中显示 count(),我该怎么做?
- perl - 使用 Math::Polygon 确定点是否在多边形内。不工作
- python - 从字典创建熊猫数据框
- javascript - 检查变量是否相等的语法
- python - 如何仅根据 pandas df 中的 2cols 绘制重复值?
- kubernetes - 裸机上的灭霸
- python - 张量流问题(文件未找到)
- python - 尝试使用 Python 查询 CSV 中的数据失败
- ruby-on-rails - 使用 unicorn 和 Nginx 部署的 Rails 应用程序无法在 Kubernetes 基础设施上加载静态资源
- sql - SQL 从 2 个数据库查询架构和数据到一行