Здравствуйте, нужна помощь по php mailer

DarkSpirit
На сайте с 08.11.2008
Offline
96
459

Как в php mailer, устроить редирект странички?

Добавляю header("Location: /registration/"); в ответ ошибку указывает, Cannot modify header information - headers already sent by

romantictourism.in.ua (romantictourism.in.ua)
Mik Foxi
На сайте с 02.03.2011
Offline
1216
#1

header нужно ставить до какого либо вывода контента в браузер.

Антибот, антиспам, веб фаервол, защита от накрутки поведенческих: https://antibot.cloud/ (Зеркало: https://антибот.рф/ ) Форум на замену серчу: https://foxi.biz/
DarkSpirit
На сайте с 08.11.2008
Offline
96
#2

Что-то вообще запутался, вот код формы:

function complete_mail() { 

substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 1000);
$_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 1000);
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 30);
$_POST['pass'] = substr(htmlspecialchars(trim($_POST['pass'])), 0, 30);
$_POST['address'] = substr(htmlspecialchars(trim($_POST['address'])), 0, 50);
$_POST['spec'] = substr(htmlspecialchars(trim($_POST['spec'])), 0, 50);
$_POST['time'] = substr(htmlspecialchars(trim($_POST['time'])), 0, 50);
$_POST['region'] = substr(htmlspecialchars(trim($_POST['region'])), 0, 50);
$_POST['info'] = substr(htmlspecialchars(trim($_POST['info'])), 0, 50);

$mess = '
<b>Имя отправителя:</b>'.$_POST['name'].'<br />
<b>Контактный телефон:</b>'.$_POST['tel'].'<br />
<b>Контактный email:</b>'.$_POST['email'].'<br />
<b>Пароль:</b>'.$_POST['pass'].'<br />
<b>Адрес:</b>'.$_POST['adress'].'<br />
<b>Специлизация:</b>'.$_POST['spec'].'<br />
<b>Время работы:</b>'.$_POST['time'].'<br />
<b>Регион:</b>'.$_POST['region'].'<br />
<b>Информация о бизнесе:</b>'.$_POST['info'].'<br />
'.$_POST['mess'];

// подключаем файл класса для отправки почты
require 'class.phpmailer.php';

$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
$mail->From = 'contact@kolody-s.com'; // от кого
$mail->FromName = 'contact@kolody-s.com'; // от кого
$mail->AddAddress('contact@kolody-s.com', 'Имя'); // кому - адрес, Имя
$mail->IsHTML(true); // выставляем формат письма HTML
$mail->Subject = 'Заявка с сайта '; // тема письма

// если был файл, то прикрепляем его к письму
if(isset($_FILES['attachimage'])) {
if($_FILES['attachimage']['error'] == 0){
$mail->AddAttachment($_FILES['attachimage']['tmp_name'], $_FILES['attachimage']['name']);
}
}
if(isset($_FILES['attachimage2'])) {
if($_FILES['attachimage2']['error'] == 0){
$mail->AddAttachment($_FILES['attachimage2']['tmp_name'], $_FILES['attachimage2']['name']);
}
}
if(isset($_FILES['attachimage3'])) {
if($_FILES['attachimage3']['error'] == 0){
$mail->AddAttachment($_FILES['attachimage3']['tmp_name'], $_FILES['attachimage3']['name']);
}
}

$mail->Body = $mess;
// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo 'Спасибо! Ваше письмо отправлено.';
sleep(5);
header("Location: /registration/");
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();

Пробовал таким образом не выходит:

if (!empty($_POST['submit']))

{
header("Location: /registration/");
complete_mail();
exit();
}
else
{
show_form();
}

Не подскажете в чем проблема?

TF-Studio
На сайте с 17.08.2010
Offline
334
#3

die ('Mailer Error: '.$mail->ErrorInfo);

и

echo 'Спасибо! Ваше письмо отправлено.';

Мешают.

И вроде как Location надо полностью указывать.

Если нужна задержка - сделайте редирект через JS

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4

В начале скрипта сделайте:

<?

ob_start();

и всё будет работать.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
DarkSpirit
На сайте с 08.11.2008
Offline
96
#5
LEOnidUKG:
В начале скрипта сделайте:
<?
ob_start();

и всё будет работать.

ставил перед функцией complete_mail, не помогло

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#6

Где я писал про "перед функцией"?!

Где всё это исполняется index.php или куда всё это инклудится, поставьте код, который я дал.

IL
На сайте с 20.04.2007
Offline
435
#7
DarkSpirit:
ставил перед функцией complete_mail, не помогло
LEOnidUKG:
В начале скрипта сделайте:

Неужели разницы не видно?

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
DarkSpirit
На сайте с 08.11.2008
Offline
96
#8
LEOnidUKG:
Где я писал про "перед функцией"?!

Где всё это исполняется index.php или куда всё это инклудится, поставьте код, который я дал.

извиняюсь, скрипт и начинается функцией этой, потому перед ней и вставил. уже работает, немного не доглядел когда копировал, спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий