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

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

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

Почти всё взято отсюда: 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]

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

Изменено пользователем Medik
Ссылка на сообщение
Поделиться на других сайтах

Очень и очень хорошая форма! Благодарю, именно то что искал. :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

Изменено пользователем Aleko
Ссылка на сообщение
Поделиться на других сайтах

        $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 платный двиг, у вас ворованная версия, а вы имеете наглость обращаться на офф.форум разработчика, вам тут помогать ни кто не будет, могут и забанить.

Изменено пользователем Captain
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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