Помощь Форма дополнительных полей

Тема в разделе "DLE", создана пользователем droni4, 26 май 2013.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. droni4

    droni4

    Регистр.:
    21 авг 2007
    Сообщения:
    182
    Симпатии:
    7
    Здравствуйте уважаемы!
    Делал страницу с дополнительным полями все получилось только при получении на mail.ru тема и от кого отображается ромбами, проблема в кодировке только решить ее никак не могу подскажите пожалуйста...

    2013-05-26_095020.png


    /engine/modules/vopros.php
    Код:
    <?
     
    if( ! defined( 'DATALIFEENGINE' ) ) {
        die( "Hacking attempt!" );
    }
    //загрузка шаблона
    $tpl->load_template('vopros.tpl');
     
            //проверка корректрости е-майла
            function check_email($value) {
                return eregi( "^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $value );
            }
     
    if ($_POST['f']==1)
    {
    $stop = "";
    // --------------------------- конфигурирование -------------------------- //
    $adminemail="burguyavto@mail.ru";  // емайл админа - кому отсылать
    $date=date("d.m.Y"); // число.месяц.год
    $time=date("H:i:s"); // часы:минуты:секунды
    // ---------------------------------------------------------------------- //
     
    // считываем данные формы:
     
    $vin=$_POST['vin'];
    $model=$_POST['model'];
    $dvig=$_POST['dvig'];
    $detal=$_POST['detal'];
    $tel=$_POST['tel'];
    $dopinf=$_POST['dopinf'];
    $email=$_POST['email'];
     
     
            if( empty( $email ) ) {
                $stop .= $lang['feed_err_2'];
            } elseif( ! check_email( $email ) ) {
                $stop .= $lang['feed_err_3'];
            }
     
            if( $stop ) {
               
                msgbox( $lang['all_err_1'], "$stop<br /><br /><a href=\"javascript:history.go(-1)\">$lang[all_prev]</a>" );
           
            } else {
     
    // отправка админу сообщения
    $headers=null; // Настройки для отправки писем
    $headers.="From: Вопрос с сайта <".$adminemail.">\r\n";
    $headers.="X-Mailer: PHP/".phpversion()."\r\n";
    $host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
     
     
    // Собираем всю информацию в теле письма
    $allmsg="
    VIN: $vin
    Марка, модель, год выпуска авто: $model
    Объем двигателя, мощность: $dvig
    Требуемая деталь: $detal
     
    Телефон клиента: $tel
    Email клиента: $email
     
    Дополнительные коментарии: $dopinf
     
    ...
     
    * Это сообщение сгенерировано и отправлено роботом. Отвечать на него ненужно.";
     
    // Отправляем письмо майлеру на съедение если разрешена отправка;-)
    mail("$adminemail", "Вопрос с сайта буржуйавто.рф", $allmsg, $headers);
     
                $bronirovanie = "<br><center><b>Ваш запрос отправлен! В ближайшее время мы свяжемся с вами.</b></center><br>";
           
    }
               
    } else {
    //сформируем форму
     
    $vopros = "
    <b style='color:#4678AA;'>Уважаемые посетители, чтобы составить запрос по интересующей вас детали (цене, наличии или срока поставки) необходимо:</b>
    <br><br>
     
    <FORM name='vopros' action='".$_SERVER['REQUEST_URI']."' method='post'>
     
     
    <table>
        <tr>
            <td><b>1.</b> VIN номер (номер кузова):</td>
            <td><input type='text' name='vin' class='input-text' value='' /></td>
        </tr>
        <tr>
            <td><b>2.</b> Марка, модель, год выпуска авто:</td>
            <td><input type='text' name='model' class='input-text' value='' /></td>
        </tr>
        <tr>
            <td><b>3.</b> Объем двигателя, мощность:</td>
            <td><input type='text' name='dvig' class='input-text' value='' /></td>
        </tr>
        <tr>
            <td><b>4.</b> Требуемая деталь:</td>
            <td><input type='text' name='detal' class='input-text' value='' /></td>
        </tr>
        <tr>
            <td><b>5.</b> Ваш телефон:</td>
            <td><input type='text' name='tel' class='input-text' value='' /></td>
        </tr>
        <tr>
            <td><b>6.</b> Ваш email:</td>
            <td><input type='text' name='email' class='input-text' value='' /></td>
        </tr>
        <tr>
            <td><b>7.</b> Дополнительные коментарии:</td>
            <td><textarea name='dopinf' rows='' cols=''  value='' ></textarea></td>
        </tr>
    </table>
     
     
        <input  name='submit' type='submit' class='btn' title='Отправить' value='Отправить' onclick='submit();return false;'>
        <input type='hidden' name='f' value='1'>
        <input type='hidden' name='adr' value='$adr'>
    </FORM>";
     
    }
                $tpl->set('{vopros}',$vopros);
                $tpl->compile( 'content' );
                $tpl->clear();
     
    ?>

    /templates/Gemini/vopros.tpl
    Код:
    <h1 class="alltit">Вопросы и Ответы</h1>
    {vopros}
    <br><br>
    <b>e-mail:</b> burguyavto@mail.ru<br>
    <b>тел.:</b> (3452) 38-56-38, 38-56-28<br><br>
    С удовольствием ответим на все интересующие вас вопросы!
    
    как еще можно сделать что бы при отправке пользователю высвечивалось сообщение что ваше сообщение отправлено в ближайшее время наши сотрудники свяжутся с вами?
     
  2. rider1203

    rider1203

    Регистр.:
    4 авг 2008
    Сообщения:
    242
    Симпатии:
    58
    можно messagebox вставить ;)

    Код:
    <input name='submit' type='submit' class='btn' title='Отправить' value='Отправить' onclick='submit();return confirm('Ваше сообщение отправлено!В ближайшее время наши сотрудники свяжутся с вами.');'>
     
  3. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Тема и отправитель должны шифроваться через base64 и указанием кодировки. Для отправки писем в ДЛЕ есть специальный класс maill.class.php, который генерирует корректный заголовок и делает все необходимые преобразования. Не нужно использовать функцию mail и самостоятельно генерировать заголовки - нужно использовать этот класс.
     
  4. droni4

    droni4

    Регистр.:
    21 авг 2007
    Сообщения:
    182
    Симпатии:
    7
    не подскажете как в данном случае прикрутить maill.class.php ?
     
  5. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Не помню, подключает ли DLE где-то работу с почтой, но в общих чертах:

    PHP:
    include_once ENGINE_DIR '/classes/mail.class.php';
    $mail = new dle_mail$config );

    $mail->send("Кому""Тема""Сообщение" );