Как отправить письмо через PHPMailer и пропустить отчёт?
У меня на странице с регистрацией такой код:
<?php
require_once __DIR__.'/boot.php';
// Проверим, не занято ли имя пользователя
$stmt = pdo()->prepare("SELECT * FROM `users` WHERE `email` = :email");
$stmt->execute(['email' => $_POST['email']]);
if ($stmt->rowCount() > 0) {
flash('Это имя пользователя уже занято.');
header('Location: /'); // Возврат на форму регистрации
die; // Остановка выполнения скрипта
}
// Добавим пользователя в базу
$stmt = pdo()->prepare("INSERT INTO `users` (`email`, `password`) VALUES (:email, :password)");
$stmt->execute([
'email' => $_POST['email'],
'password' => password_hash($_POST['password'], PASSWORD_DEFAULT),
]);
require_once $_SERVER["DOCUMENT_ROOT"]."/mailer/sendemail.php";
header('Location: /login/login.php');
при регистрации, через sendemail.php оправляю письмо с данными для авторизации. Но из-за этого не выполняется
header('Location: /login/login.php');
пользователь не уходит на страницу /login/login.php и остаётся на отчёт об отправке.
Вот что в sendemail.php
<?php
// Отправка логина и пароля через PHPMailer
require $_SERVER["DOCUMENT_ROOT"].'/mailer/PHPMailer.php';
require $_SERVER["DOCUMENT_ROOT"].'/mailer/SMTP.php';
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl';
$mail->Host = "ssl://...";
$mail->Port = ...;
$mail->IsHTML(true);
$mail->Username = "...";
$mail->Password = "...";
$mail->SetFrom("...");
$mail->CharSet = "UTF-8"; // кодировка
$mail->isHTML(true);
$mail->Subject = "Вы успешно зарегистрировались";
// создаем тело письма
$body = "<!DOCTYPE html>";
$body .= "<html><head>";
$body .= "<meta charset='UTF-8' />";
$body .= "</head><body>";
$body .= "<table><tr><td><table style='width:600px'>";
$body .= "<tr><td colspan='2'> </td></tr>";
$body .= "<tr><td colspan='2'>Ваши учётные данные:</td></tr>";
$body .= "<tr><td colspan='2'>Логин: ". $_POST['email'] ."</td></tr>";
$body .= "<tr><td colspan='2'>Пароль: ". $_POST['password'] ."</td></tr>";
$body .= "</table></td></tr></table>";
$body .= "</body></html>";
$mail->msgHTML($body); // формируем тело
$mail->AddAddress($_POST['email']);
$mail->send();