Автор Тема: Модуль обратной связи  (Прочитано 3020 раз)

0 Пользователей и 1 Гость просматривают эту тему.

System1988Автор темы

  • *
  • Оффлайн
  • Награды Более 5 лет на форуме !!!
  • Дата регистрации: Июль 2016
  • Сообщений: 5
  • Страна: ru
  • Поблагодарили: 2 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Модуль обратной связи
« : 15 Августа 2016, 01:24:00 »
Есть у кого модуль обратной связи с фермы?
или как доработать, строчку выделил красным.

<?PHP
$_OPTIMIZATION["title"] = "Контакты";
$_OPTIMIZATION["description"] = "Связь с администрацией";
$_OPTIMIZATION["keywords"] = "Связь с администрацией проекта";
?>
<td valign="top">
<div class="r_block">
<h1>Контакты</h1>
<div class="silver-bk"><div class="clr"></div>   


<center>Вопросы задавайте четко, сформулировав суть, конкретно и максимально высказав требования или пожелания. Все письма рассматриваются в порядке очереди в течении 48 часов после отправки.
За спам и флуд будут применятся штрафные санкции без предварительного предупреждения, вплоть до блокировки аккаунта в нашем проекте!</center>

 

</p>

<?php

/**
 * Класс отправки почтовых сообщений функций mail()
 * @author дизайн студия ox2.ru
 */
class Mail {

    private $_plain = "text/plain";  //В переменной храним тип сообщения, обычный текст, или html

    /**
     * Метод установки типа сообщения, если параметр $type = true, сообщение будет HTML,
     * если false, то обычный текст
     * @param <boolean> $type
     */

    public function isTypeHtml($is_html = true) {
        if ($is_html == true) {
            $this->_plain = "text/html";
        } else {
            $this->_plain = "text/plain";
        }
    }

    /**
     * Метод отправляет сообщение
     * @param string $to - e-mail, на который придет сообщение
     * @param <type> $to_name - Имя получателя
     * @param string $from - e-mail, с которого будет отправлено сообщение
     * @param <type> $from_name - Имя отправителя
     * @param string $subject - тема сообщения
     * @param <type> $message - сообщение
     * @return <type>
     */
    public function send($to, $to_name, $from, $from_name, $subject, $message) {
        $headers = "From: =?windows-1251?B?" . base64_encode($from_name) . "?= <$from>\r\n"; //Делаем правильные заголовки, чтобы русский был русским, и т.д.
        $headers .= "To: =?windows-1251?B?" . base64_encode($to_name) . "?= <$to>\r\n";
        $headers .= "Subject: =?windows-1251?b?" . base64_encode($subject) . "?=\r\n";
        $headers .= "Content-type: $this->_plain; charset=\"windows-1251\"\r\n";
        $headers .= "X-Mailer: mail.ru \r\n";

        if (mail($to, $subject, $message, $headers)) { //Если сообщение отправлено, то возвращаем true
            return true;
        }
        else return false; //Если возникли ошибки при отправке сообщений, то false

    }

}

if (isset($_POST["send"])) {
    $mail = new Mail(); //Создаем класс Mail
    $mail->isTypeHtml(false); //Ставим тип сообщения как обычный текст
    $message = "Имя: " . $_POST["fio"] . "\n\r"; //Готовим само сообщение
    $message .= "email: " . $_POST["email"] . "\n\r";
    $message .= "Сообщение: " . $_POST["message"] . "\n\r";

    if ($mail->send("sapportgame@list.ru", "Администрация", "Обратный адрес", "Обратная связь", "Сообщение с сайта Gminer.xyz", $message)) { //Отправляем сообщение
        echo "<p>Сообшение успешно отправлено!</p>";
    } else {
        echo "<p>Возникли ошибки при отправке сообщения!</p>";
    }
}
?>


<form method="post" action="">
    <table cellpadding="2" cellspacing="0" border="0">
        <tbody>
            <tr>
                <td valign="middle" align="right">Имя:</td>
                <td valign="middle" align="left"><input type="text" value="" name="fio" size="25" maxlength="255" /></td>
            </tr>
            <tr>
                <td valign="middle" align="right">E-mail:</td>
                <td valign="middle" align="left"><input type="text" value="" name="email" size="25" maxlength="255" />
</td>
            </tr>
            <tr>
                <td valign="top" align="right">Сообщение:</td>
                <td valign="middle" align="left"><textarea name="message" rows="5" cols="30"></textarea></td>
            </tr>
            <tr>
                <td valign="middle" align="right" colspan="2">
                    <input type="submit" value="Отправить" name="send" />
                </td>
            </tr>
        </tbody>
    </table>
</form>


</div>
<div class="clr"></div>   
 
Пользователи, которые поблагодарили этот пост: Cente-Seo, emre

System1988Автор темы

  • *
  • Оффлайн
  • Награды Более 5 лет на форуме !!!
  • Дата регистрации: Июль 2016
  • Сообщений: 5
  • Страна: ru
  • Поблагодарили: 2 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Модуль обратной связи
« Ответ #1 : 15 Августа 2016, 01:28:10 »
вот так приходит на мыло

Сообщение с сайта Gminer.xyz
От кого: Обратная связь <"Обратный адрес"@postlady.main-hosting.eu> 
Кому: sapportgame@list.ru, Администрация <sapportgame@list.ru>

Сегодня, 1:27 0 файлов важное
 

enclave

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 50 сообщений
  • Дата регистрации: Май 2016
  • Сообщений: 64
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Модуль обратной связи
« Ответ #2 : 12 Июня 2018, 17:54:09 »
У меня кириллица не проходит, на почту приходит пустое сообщение, если в тексте письма вставить русские буквы.
Кто-то писал, что сейчас в windows-1251 никто не посылает.
Пришлось изменить, но результата не дало.
//Делаем правильные заголовки, чтобы русский был русским, и т.д.
        $headers = "From: =?UTF-8?B?" . base64_encode($from_name) . "?= <$from>\r\n";
        $headers .= "To: =?UTF-8?B?" . base64_encode($to_name) . "?= <$to>\r\n";
        $headers .= "Subject: =?UTF-8?b?" . base64_encode($subject) . "?=\r\n";
        $headers .= "Content-type: $this->_plain; charset=\"windows-1251\"\r\n";
 

stariy

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! Более 100 сообщений Репутация более 10 За финансовую помощь форуму !!! Благодарность от форума
  • Дата регистрации: Нояб. 2017
  • Расположение: 22 регион
  • Сообщений: 245
  • Страна: ru
  • Поблагодарили: 44 раз(а)
  • Репутация +10/-0
  • Пол: Мужской
    Социальные сети:
    ВКонтакте
Модуль обратной связи
« Ответ #3 : 12 Июня 2018, 19:00:41 »
Content-type: $this->_plain; charset=\"windows-1251\"\r\n";
Меняй везде, и сам файл тоже в utf8 меняй
 

enclave

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 50 сообщений
  • Дата регистрации: Май 2016
  • Сообщений: 64
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Модуль обратной связи
« Ответ #4 : 12 Июня 2018, 19:17:47 »
Заменил:
//Делаем правильные заголовки, чтобы русский был русским, и т.д.
        $headers = "From: =?UTF8?B?" . base64_encode($from_name) . "?= <$from>\r\n";
        $headers .= "To: =?UTF8?B?" . base64_encode($to_name) . "?= <$to>\r\n";
        $headers .= "Subject: =?UTF8?b?" .base64_encode($subject) . "?=\r\n";
        $headers .= "Content-type: $this->_plain; charset=\"UTF8\"\r\n";
        $headers .= "X-Mailer: yandex.ru \r\n";


Добавлено сообщение: [time]12 Июнь 2018, 19:19:09[/time]
//Делаем правильные заголовки, чтобы русский был русским, и т.д.
        $headers = "From: =?UTF-8?B?" . base64_encode($from_name) . "?= <$from>\r\n";
        $headers .= "To: =?UTF-8?B?" . base64_encode($to_name) . "?= <$to>\r\n";
        $headers .= "Subject: =?UTF-8?b?" .base64_encode($subject) . "?=\r\n";
        $headers .= "Content-type: $this->_plain; charset=\"UTF-8\"\r\n";
        $headers .= "X-Mailer: yandex.ru \r\n";


http://joxi.ru/xAeglzEupRRQBm.jpg
Модуль обратной связи



Добавлено сообщение: 12 Июня 2018, 19:30:47
Добавив к странице:
header('Content-Type: text/html; charset= UTF8');
получаем ромбики:
http://joxi.ru/Grqj6OKcQ4438m.jpg
Модуль обратной связи

Отправляем, и письмо приходит такого вида:
http://joxi.ru/Vm6ZeqzcD44GZm.jpg
Модуль обратной связи

при коде:
        $headers = "From: =?UTF8?B?" . base64_encode($from_name) . "?= <$from>\r\n"; 
        $headers .= "To: =?UTF8?B?" . base64_encode($to_name) . "?= <$to>\r\n";
        $headers .= "Subject: =?UTF8?b?" .base64_encode($subject) . "?=\r\n";
        $headers .= "Content-type: $this->_plain; charset=\"UTF8\"\r\n";
        $headers .= "X-Mailer: yandex.ru \r\n";
 

stariy

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! Более 100 сообщений Репутация более 10 За финансовую помощь форуму !!! Благодарность от форума
  • Дата регистрации: Нояб. 2017
  • Расположение: 22 регион
  • Сообщений: 245
  • Страна: ru
  • Поблагодарили: 44 раз(а)
  • Репутация +10/-0
  • Пол: Мужской
    Социальные сети:
    ВКонтакте
Модуль обратной связи
« Ответ #5 : 12 Июня 2018, 20:10:09 »
Сам файл  :alas: смени кодировку
 

enclave

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 50 сообщений
  • Дата регистрации: Май 2016
  • Сообщений: 64
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Модуль обратной связи
« Ответ #6 : 12 Июня 2018, 20:14:47 »
http://joxi.ru/MAjEVYJI4jxjN2.jpg
Модуль обратной связи

если так, то сразу сменил как вы написали )
письмо уже корректно в ящике отображается, только вот страницу от ромбиков осталось избавить, продолжаю плясать...  !!!^#|
 

stariy

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! Более 100 сообщений Репутация более 10 За финансовую помощь форуму !!! Благодарность от форума
  • Дата регистрации: Нояб. 2017
  • Расположение: 22 регион
  • Сообщений: 245
  • Страна: ru
  • Поблагодарили: 44 раз(а)
  • Репутация +10/-0
  • Пол: Мужской
    Социальные сети:
    ВКонтакте
Модуль обратной связи
« Ответ #7 : 12 Июня 2018, 20:21:48 »
В строках пиши через - UTF-8 и лучше всего весь скрипт переведи в utf

Добавлено сообщение: 12 Июня 2018, 20:25:48
В файле .htaccess и в heder.php скорей всего стоит принудительная кодировка в windows 1251
 

enclave

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 50 сообщений
  • Дата регистрации: Май 2016
  • Сообщений: 64
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Модуль обратной связи
« Ответ #8 : 12 Июня 2018, 20:49:08 »
Если в header.php изменить стоку на utf-8:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
тогда весь сайт цветёт ромбиками )))

в файле .htaccess кодировки не нашёл.
 

finans13

  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Болеее 500 сообщений Топ 10 по созданным темам Топ 10 по сообщениям Репутация более 10 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Март 2016
  • Возраст: 43
  • Сообщений: 619
  • Страна: ru
  • Поблагодарили: 112 раз(а)
  • Репутация +15/-2
  • Пол: Мужской
  • Дата рождения:
    1980-07-13
    Социальные сети:
    ВКонтактеОдноклассники
Модуль обратной связи
« Ответ #9 : 13 Июня 2018, 03:01:05 »
Если в header.php изменить стоку на utf-8:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
тогда весь сайт цветёт ромбиками )))

в файле .htaccess кодировки не нашёл.

это строчку в корневой хитечес попробуй воткни
php_value default_charset "cp1251"
«Металлоизделия» ведет свою деятельность по изготовлению эксклюзивных кованых и металлических изделий в Красноярске.
https://24svark.ru
+7 (908) 205-81-82
 

stariy

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! Более 100 сообщений Репутация более 10 За финансовую помощь форуму !!! Благодарность от форума
  • Дата регистрации: Нояб. 2017
  • Расположение: 22 регион
  • Сообщений: 245
  • Страна: ru
  • Поблагодарили: 44 раз(а)
  • Репутация +10/-0
  • Пол: Мужской
    Социальные сети:
    ВКонтакте
Модуль обратной связи
« Ответ #10 : 13 Июня 2018, 04:15:10 »
Зачем она нужна эта 1251 ??? потратил пол часа и весь скрипт в utf перевёл))) И всё ни каких проблем больше с кодировками нет  .-.0)
 

finans13

  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Болеее 500 сообщений Топ 10 по созданным темам Топ 10 по сообщениям Репутация более 10 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Март 2016
  • Возраст: 43
  • Сообщений: 619
  • Страна: ru
  • Поблагодарили: 112 раз(а)
  • Репутация +15/-2
  • Пол: Мужской
  • Дата рождения:
    1980-07-13
    Социальные сети:
    ВКонтактеОдноклассники
Модуль обратной связи
« Ответ #11 : 13 Июня 2018, 04:36:13 »
Зачем она нужна эта 1251 ??? потратил пол часа и весь скрипт в utf перевёл))) И всё ни каких проблем больше с кодировками нет  .-.0)
а зачем пол часа тратить, когда можно проблему с ромбами с помощью одной строчки решить. вот видишь сайт без этой строчки http://prntscr.com/ju9vn7 , а вот тот же самый сайт, только с этой строчкой http://prntscr.com/ju9w1r , и не каких 30 мин тратить не надо.  а то потом начинается после перевода в ютф, то в серфинге вместо некоторых букв вопросы, то в новостях хрен знает, что пишет.
 

enclave

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 50 сообщений
  • Дата регистрации: Май 2016
  • Сообщений: 64
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Модуль обратной связи
« Ответ #12 : 13 Июня 2018, 06:08:19 »
Ребята, спасибо за поддержку сегодня вечером продолжу решать проблему, добился что на почте супер, страница где ворма расположена нормально отображается, остальной контент ромбики, но не на всём сайте а только на странице "контакты". Тоесть складывается такое ощущение что сам файл _contacts.php на половину в кодировке utf-8 и на половину в windows-1251  :alas:
Опробую позже ваши варианты отпишусь...  @#@@6

Добавлено сообщение: [time]13 Июнь 2018, 20:16:13[/time]
это строчку в корневой хитечес попробуй воткни
php_value default_charset "cp1251"
Для начала закомментировал в _header.php
http://joxi.ru/BA05e3OFJMNBXr.jpg
Модуль обратной связи

Далее вставляю в корневой хитечес:

Получаем:
http://joxi.ru/823de14cJ9XJDA.jpg
Модуль обратной связи

Почта приходит как надо, все символы корректны.
Страница "контакты" кракозябры, остальные страницы сайта в порядке без кракозябр.

Делаем так: php_value default_charset "windows-1251"
Тот же эффект, что выше.
Делаем так: php_value default_charset "UTF-8"
Весь сайт в кракозябрах. И страница "контакты".
Нормально отображается только форма отправки на почту и само письмо в почтовом ящике

http://joxi.ru/vAWz16Mc1gygV2.jpg
Модуль обратной связи




Добавлено сообщение: 13 Июня 2018, 20:19:34
Если нет больше вариантов, то как говорит stariy,- придётся пробовать переводить весь скрипт в utf-8.
 

finans13

  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Болеее 500 сообщений Топ 10 по созданным темам Топ 10 по сообщениям Репутация более 10 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Март 2016
  • Возраст: 43
  • Сообщений: 619
  • Страна: ru
  • Поблагодарили: 112 раз(а)
  • Репутация +15/-2
  • Пол: Мужской
  • Дата рождения:
    1980-07-13
    Социальные сети:
    ВКонтактеОдноклассники
Модуль обратной связи
« Ответ #13 : 13 Июня 2018, 20:24:46 »
может на хосте есть такая приблуда http://prntscr.com/jukqfa может в ней кодировкой поиграть, ну и версию пшп погонять
 

enclave

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 50 сообщений
  • Дата регистрации: Май 2016
  • Сообщений: 64
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Модуль обратной связи
« Ответ #14 : 13 Июня 2018, 21:39:22 »
может на хосте есть такая приблуда
У меня сайт на Hostinger(е) там такого не нашёл, видимо всё же придётся переводить скрипт на utf-8, сначала письмо идёт на хост, там перенаправляется на яндекс, а с ниго уже на ящик поддержки, и видимо конфликтует скрипт.
 
Теги: