Перейти к публикации

Обратная связь с отправкой файла


Рекомендованные сообщения

Понадобилось для одного сайта.

Почти всё взято отсюда: http://www.php-mail.ru/?id=4

Может кому то пригодится.

Код:

<?php

function show_form()

{

?>

<form  method="post" enctype="multipart/form-data" name="sendmail" onsubmit="if(document.sendmail.contact_name.value == '' || document.sendmail.contact_phone.value == ''){alert('Пожалуйста, заполните все обязательные поля');return false}" action="">


<table width="100%" class="slink">

  <tr>

    <td align="left"><font color="#FF0000">*</font> Фамилия, Имя, Отчество:</td>

    </tr>

  <tr>

    <td align="left"><input name="contact_name" type="text" class="f_input" /></td>

  </tr>

  <tr>

    <td align="left"><br />

        <font color="#FF0000">*</font> Телефон:</td>

  </tr>

  <tr>

    <td align="left"><input name="contact_phone" type="text" class="f_input" /></td>

  </tr>

  <tr>

    <td align="left"><br />Прайс лист с заказом:</td>

  </tr>

  <tr>

    <td align="left"><input name="attachfile" type="file" size="45" />    </td>

  </tr>

  <tr>

    <td align="left"><br />Адрес:</td>

  </tr>

  <tr>

    <td align="left"><input name="contact_adress" type="text" class="f_input" /></td>

  </tr>

  <tr>

    <td align="left"><br />E-mail:</td>

  </tr>

  <tr>

    <td align="left"><input name="contact_email" type="text" class="f_input" /></td>

  </tr>

  <tr>

    <td align="left"><br />Сообщение:</td>

  </tr>

  <tr>

    <td align="left"><textarea name="contact_message" rows="5" class="f_textarea"></textarea></td>

  </tr>

  <tr>

    <td align="left"><br />

      <font color="#FF0000">Внимание: Поля помеченные <strong>*</strong> обязательны для заполнения</font><br /><br />

      <input type="submit" value="Отправить" name="submit"></td>

  </tr></table>


</form>


<?

}


function complete_mail() {


        $contact_name =  substr(htmlspecialchars(trim($_POST['contact_name'])), 0, 1000);

        $contact_phone =  substr(htmlspecialchars(trim($_POST['contact_phone'])), 0, 1000);

        $contact_adress =  substr(htmlspecialchars(trim($_POST['contact_adress'])), 0, 1000);

        $contact_email =  substr(htmlspecialchars(trim($_POST['contact_email'])), 0, 1000);

        $contact_message =  substr(htmlspecialchars(trim($_POST['contact_message'])), 0, 1000);



        $message = 'Поступил новый заказ с сайта<br /><br />

		Фамилия, Имя, Отчество: '.$contact_name.'<br />

		Телефон: '.$contact_phone.'<br />

		Адрес: '.$contact_adress.'<br />

		E-mail: '.$contact_email.'<br />

		Сообщение: '.$contact_message;


        require 'class.phpmailer.php';


        $mail = new PHPMailer();

        $mail->From = 'мыло@mail.ru';

        $mail->FromName = 'Сайт Название';

        $mail->AddAddress('мыло@mail.ru', 'Сайт Название');

        $mail->IsHTML(true);

        $mail->Subject = 'Новый заказ с сайта Название';


        if(isset($_FILES['attachfile'])) {

                 if($_FILES['attachfile']['error'] == 0){

                    $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);

                 }

        }


        $mail->Body = $message;


        // отправляем наше письмо

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

        echo '<br /><div class="news"><strong>Спасибо.<br />Ваш заказ отправлен.<br />В ближайшее время мы свяжемся с Вами.</strong></div>';

}


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

else show_form();

?>
Пишем в коде нужные адреса и тексты. Если нужно меняем поля и.т.п. Сохраняем как order.php в папку modules. Скачиваем http://www.php-mail.ru/class.phpmailer.zip распаковываем 2 файла и кидаем туда же. Подключаем order.php в шаблон main.tpl
[category=Номер категории где нужно показать модуль]{include file="order.tpl"}[/category]

Можно добавить в категорию новость с текстом, который будет описывать форму.

Ссылка на сообщение
Поделиться на других сайтах

Очень и очень хорошая форма! Благодарю, именно то что искал. :rolleyes:

Единственное, что лично мне надо, чтобы это было как статическая страница, я добавил в engine.php

	case "order" :

		include ENGINE_DIR.'/modules/order.php';

		break;

Может кто подсказать, как её встроить, чтобы например при открытии

http://сайт.ру/index.php?do=order

Открывалась страница как обратная связь (встроенная в дизайн)

http://сайт.ру/index.php?do=feedback

? :( напишите тут или в приват

Ссылка на сообщение
Поделиться на других сайтах

Может кто подсказать, как её встроить, чтобы например при открытии

http://сайт.ру/index.php?do=order

Открывалась страница как обратная связь (встроенная в дизайн)

http://сайт.ру/index.php?do=feedback

? напишите тут или в приват

Обратитесь к документации по скрипту, там между прочим об этом подробно написано http://dle-news.ru/extras/online/index.html?modules_include.html

Ссылка на сообщение
Поделиться на других сайтах

Разобрался. Теперь появился другой вопрос, как правильно сделать, чтобы письмо приходило на несколько почтовых ящиков?

Повторите

        $mail = new PHPMailer();

        $mail->From = 'мыло@mail.ru';

        $mail->FromName = 'Сайт Название';

        $mail->AddAddress('мыло@mail.ru', 'Сайт Название');

        $mail->IsHTML(true);

        $mail->Subject = 'Новый заказ с сайта Название';


        if(isset($_FILES['attachfile'])) {

                 if($_FILES['attachfile']['error'] == 0){

                    $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);

                 }

        }


        $mail->Body = $message;

Ссылка на сообщение
Поделиться на других сайтах

И ещё раз благодарю

Хотя не получилось, сделав такой код

        $mail = new PHPMailer();

        $mail->From = 'мыло@mail.ru';

        $mail->FromName = 'Сайт Название';

        $mail->AddAddress('МЫЛО1@mail.ru', 'Сайт Название');

        $mail->IsHTML(true);

        $mail->Subject = 'Новый заказ с сайта Название';


        if(isset($_FILES['attachfile'])) {

                 if($_FILES['attachfile']['error'] == 0){

                    $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);

                 }

        }


        $mail->Body = $message;


        $mail = new PHPMailer();

        $mail->From = 'мыло@mail.ru';

        $mail->FromName = 'Сайт Название';

        $mail->AddAddress('МЫЛО2@mail.ru', 'Сайт Название');

        $mail->IsHTML(true);

        $mail->Subject = 'Новый заказ с сайта Название';


        if(isset($_FILES['attachfile'])) {

                 if($_FILES['attachfile']['error'] == 0){

                    $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);

                 }

        }


        $mail->Body = $message;


        // отправляем наше письмо

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

        echo '<br /><div class="news"><strong>Спасибо.<br />Ваш заказ отправлен.<br />В ближайшее время мы свяжемся с Вами.</strong></div>';

}


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

else show_form();

?>

Письмо приходит только на МЫЛО2@mail.ru

Ссылка на сообщение
Поделиться на других сайтах

        $mail = new PHPMailer();

        $mail->From = 'мыло@mail.ru';

        $mail->FromName = 'Сайт Название';

        $mail->AddAddress('МЫЛО1@mail.ru', 'МЫЛО2@mail.ru', 'Сайт Название');

        $mail->IsHTML(true);

        $mail->Subject = 'Новый заказ с сайта Название';


        if(isset($_FILES['attachfile'])) {

                 if($_FILES['attachfile']['error'] == 0){

                    $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);

                 }

        }


        $mail->Body = $message;


        // отправляем наше письмо

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

        echo '<br /><div class="news"><strong>Спасибо.<br />Ваш заказ отправлен.<br />В ближайшее время мы свяжемся с Вами.</strong></div>';

}


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

else show_form();

?>

Не помогло, письмо приходит только на МЫЛО1@mail.ru

Ссылка на сообщение
Поделиться на других сайтах

Скорее всего не так:

$mail->AddAddress('МЫЛО1@mail.ru', 'МЫЛО2@mail.ru', 'Сайт Название');

а так:

$mail->AddAddress('МЫЛО1@mail.ru, МЫЛО2@mail.ru', 'Сайт Название');

Ссылка на сообщение
Поделиться на других сайтах

$mail->AddAddress('МЫЛО1@mail.ru, МЫЛО2@mail.ru', 'Сайт Название');

Только на МЫЛО1@mail.ru приходит

Я ОШИБСЯ!!! :o письмо на второй ящик пришло, но только с задержкой в несколько минут, повторно проверив пришло сразу на оба. Я счастлив, спасибо всем кто принял участи :)

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

ЧТо-то не получилось встроить ее как модуль для dle, по адресу index.php?do=order не открывается

Внимательно прочтите инструкцию. Каждое слово и строчку.

Ссылка на сообщение
Поделиться на других сайтах

Подключаем order.php в шаблон main.tpl

[category=Номер категории где нужно показать модуль]{include file="order.tpl"}[/category]

Можно добавить в категорию новость с текстом, который будет описывать форму.

Ссылка на сообщение
Поделиться на других сайтах

ЧТо-то не получилось встроить ее как модуль для dle, по адресу index.php?do=order не открывается

Внимательно прочтите инструкцию. Каждое слово и строчку.

Я именно так и сделал и понял что это не модуль! Что бы работал модуль нужно как минимум подгрузить ему шаблон, а не инклюдить в tpl файл. Я бы хотел что бы он работал как нормальный модуль по адресу /index.php?do=add

Ссылка на сообщение
Поделиться на других сайтах

ЧТо-то не получилось встроить ее как модуль для dle, по адресу index.php?do=order не открывается

Внимательно прочтите инструкцию. Каждое слово и строчку.

Я именно так и сделал и понял что это не модуль! Что бы работал модуль нужно как минимум подгрузить ему шаблон, а не инклюдить в tpl файл. Я бы хотел что бы он работал как нормальный модуль по адресу /index.php?do=add

Адрес вы можете средиректить в .htaccess

И вообще, что за претензии, хотите сделать в виде модуля - сделайте. Инструкций как подключать модули в DLE в сети предостаточно.

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

Народ, такое дело, написал форму обратной связи ордер.пхп и онлайн_ордер.тпль привязывал в енджине.пхп капча работает, на мыло отправляет только имя отправителя и текст, а остальные поля не отправляет, кто подскажет, что не так я сделал, помоги плз...

Ссылка на сообщение
Поделиться на других сайтах

Народ, такое дело, написал форму обратной связи ордер.пхп и онлайн_ордер.тпль привязывал в енджине.пхп капча работает, на мыло отправляет только имя отправителя и текст, а остальные поля не отправляет, кто подскажет, что не так я сделал, помоги плз...

Откуда мы можем знать что вы не так сделали. Но судя по всему не добавили содержание полей к тексту письма.

Ссылка на сайт?

Ссылка на сообщение
Поделиться на других сайтах

Нелегальная копия скрипта!

Обязательно прочитайте разъясняющую тему: http://forum.dle-news.ru/index.php?showannouncement=1&f=46

Ссылка на сообщение
Поделиться на других сайтах

Ну не сносить же мне весь сайт теперь... это значит, что мне отказано в помощи?

Можно не сносить, купите лицензию.

DLE платный двиг, у вас ворованная версия, а вы имеете наглость обращаться на офф.форум разработчика, вам тут помогать ни кто не будет, могут и забанить.

Ссылка на сообщение
Поделиться на других сайтах

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

×
×
  • Создать...