Почему не перенаправляет на страницу благодарности?

114
20 ноября 2021, 18:40
<div class="modal" id="modal">
<div class="modal-dialog">
  <button class="button modal__close" id="close">&times;</button>
  <div class="modal-block">
    <h1 class="modal__title">ОСТАВЬТЕ <span class="modal__title-color">ЗАЯВКУ</span></h1>
    <form action="mail.php" method="POST" class="form modal__form" id="navbar-form">
      <div class="input-group">
        <input type="text" name="username" class="input modal__input" placeholder="Ваше имя">
      </div>
      <div class="input-group">
        <input type="tel" name="phone" class="input modal__input phone" placeholder="Ваш номер телефона">
      </div>
      <button class="button modal__button">ЗАКАЗАТЬ ЗВОНОК</button>
    </form>
  </div>
</div>

<?php
// Файлы phpmailer
require 'phpmailer/PHPMailer.php';
require 'phpmailer/SMTP.php';
require 'phpmailer/Exception.php';
// Переменные, которые отправляет пользователь
$userName = $_POST['username'];
$userPhone = $_POST['phone'];
$mail = new PHPMailer\PHPMailer\PHPMailer();
try {
    $msg = "ok";
    $mail->isSMTP();   
    $mail->CharSet = "UTF-8";                                          
    $mail->SMTPAuth   = true;
        // -----------------------
        // Само письмо
        // -----------------------
        $mail->isHTML(true);
        $mail->Subject = 'Новая заявка';
        $mail->Body    = "<b>Имя:</b> $userName <br>
        <b>Телефон:</b> $userPhone";
// Проверяем отравленность сообщения
if ($mail->send()) {
    header('Location: thanks.php');
} else {
echo "Сообщение не было отправлено. Неверно указаны настройки вашей почты";
}
} catch (Exception $e) {
    echo "Сообщение не было отправлено. Причина ошибки: {$mail->ErrorInfo}";
    введите сюда код

Логика следующая, я нажимаю отправить форму, она уходит, но меня не перенаправляет на страницу благодарности, в чем проблема?

Answer 1

Так происходит потому что:

Замечание: Спецификация HTTP/1.1 требует указывать абсолютный URI в качестве аргумента » Location:, включающий схему, имя хоста и абсолютный путь, хотя некоторые клиенты способны принимать и относительные URI. Абсолютный URI можно построить самостоятельно с помощью $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] и dirname():

<?php
/* Перенаправление браузера на другую страницу в той же директории, что и
изначально запрошенная */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

Источник

READ ALSO
Сложение времени в php

Сложение времени в php

У меня есть переменная которая генерит время

89
Как протестировать Optional.orElseThrow()

Как протестировать Optional.orElseThrow()

У меня есть метод, использующий репозиторий использующий OptionalorElseThrow внутри сервиса

117
Как вынести org.quartz.jobStore.isClustered из quartz.properties в настройки сервера?

Как вынести org.quartz.jobStore.isClustered из quartz.properties в настройки сервера?

Использовал spring-quartz для выполнения задач по расписанию Все настроил и протестировался на кластере с двумя нодами

152
Просьба помочь, не могу разобраться

Просьба помочь, не могу разобраться

Допишите конструктор в класс Time, который принимает время в секундах

153