Задать вопрос
Mesuti
@Mesuti

Как решить ошибку отправки писем?

Привет!
В чем может быть проблема?
Письма доходят, но идет редирект на белую страницу с ошибкой:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /site.ru/request.php:1) in /site.ru/request.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /site.ru/request.php:1) in /site.ru/request.php on line 84


А именно на
session_start();
и
header('location: ' . $_SERVER['HTTP_REFERER']);

Весь код php
<?php
session_start();

$mail_to = 'mail@yandex.ru';

if(isset($_POST['send_req']))
{
    $sub = 'Новая заявка - Запрос на услуги';
}


if(isset($sub))
{
    $error = '';

    if(isset($_POST['name']))
    {
        $name = $_POST['name'];

        $n = 'Имя: ' . $name;

        if(strlen($name) == 0)
        {
            $error = 'Введите имя';
        }
    }

    if(isset($_POST['phone']))
    {
        $phone = $_POST['phone'];

        $p = 'Телефон: ' . $phone;

        if(strlen($phone) == 0)
        {
            $error = 'Введите ваш телефон';
        }
    }

    if(isset($_POST['email']))
    {
        $email = $_POST['email'];

        $e = 'Email: ' . $email;

        if (strlen($email) == 0)
        {
            $error = 'Введите ваш email';
        }
    } else
    {
        $email = 'no-reply@gmail.com';
    }

    if(isset($_POST['message']))
    {
        $message = $_POST['message'];

        $m = 'Сообщение: ' . $message;

        if (strlen($message) == 0)
        {
            $error = 'Введите ваш вопрос';
        }
    }

    if(strlen($error) == '')
    {
        $to      = $mail_to;
        $subject = $sub;
        $message = 'Тема: ' . $sub . "\r\n" .
            $n . "\r\n" .
            $p . "\r\n" .
            $e . "\r\n" .
            $m . "\r\n" ."\r\n" .
            $headers = 'From: ' . $email . "\r\n" .
                'Reply-To: ' . $email . "\r\n" .
                'X-Mailer: PHP/' . phpversion();

        mail($to, $subject, $message, $headers);

        $_SESSION['success'] = 1;

        header('location: ' . $_SERVER['HTTP_REFERER']);
    }
}

  • Вопрос задан
  • 49 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Mesuti
@Mesuti Автор вопроса
РЕШЕНИЕ!
Можете не спрашивать о такой ошибке, проще самому найти решение.
Вас только завалят ссылками, которые породят еще кучу вопросов.

Решение довольно простое.
Берете Notepad++ и каждый файл преобразуете в UTF-8 без BOM и сохраняете
5b36424d4e3e1539085438.jpeg
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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