@mihailos

Как можно иcправить медленную работу header?

Есть файл index на нем находится форма, action этой формы равно check.php
check.php
<?php
session_start();
require_once 'connection.php';
    $login = $_POST['login'];
    $email = $_POST['email'];
    $pass = $_POST['pass'];
    $pas_con = $_POST['pass2'];
    if($pass === $pas_con && $pass != ''){
            $passw = md5($pass);
            $query = $conn->prepare("INSERT INTO users(login, email, password) VALUES(?, ?, ?)");
            $query->execute([$login, $email, $passw]);
            $_SESSION['message'] = 'Регистрация прошла успешно! Теперь вы можете войти в свой аккаунт.';
            header("Location: /");

    }else{
        $_SESSION['message'] = 'Пароли не совпадают!';
        header("Location: /");
    }
?>

Идет переадресация на index чтобы выдать alert о том что регистрация прошла успешно или нет
Почему долго грузит header? И как это можно испрпавить? Или можно ли как то сократить переадресации?
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Mylistryx
Скорее всего не медленная работа header!
В настройках соединения к БД поменять localhost на 127.0.0.1 и тогда соединение с БД не будет занимать ~ 1 секунды.
Как проверить? Закоментировать работу с БД в файле, если всё будет гуд - то проблема в медленном подключении к БД.
//$query = $conn->prepare("INSERT INTO users(login, email, password) VALUES(?, ?, ?)");
//$query->execute([$login, $email, $passw]);
Ответ написан
Комментировать
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
У вас нет проблемы с медленной работой header(), а тормозит что-то другое.
Например что может тормозить в предоставленом коде:
1. session_start (lock или тормоза диска если сессиии на файлах)
2. коннект к бд из connection.php
3. запросы в БД (insert)
4. лагает скрипт / куда идёт редирект и кажется что долгий ответ
5. тормозит веб сервер в принципе (TTFB)

Если до сих пор считаете что тормозит именно header()
То хотелось бы увидеть метрики (скриншот) где видно факт торможения (waterfall is dev tools браузера). Наример такой же скрипт где нет ничего кроме <?php header("Location /"); против скрипта который тормозит
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы