Помогите пожалуйста с формой хтмл/пхп

Тема в разделе "PHP программирование", создана пользователем Dobrozlo, 27 авг 2011.

  1. Dobrozlo

    Dobrozlo Гость

    Я для своего сайта прикрутил форму сервиса Cмартреспондера, но мне нужно что бы перед отправкой на сервис копия сообщения отправлялась мне по электронной почте. Помогите пожалуйста сделать это! Буду примного благодарен! Могу даже материально отблагодарить..
    :facepalm:
    Код (PHP):
    <!-- SmartResponder.ru subscribe form code (begin) --><script language="javascript" type="text/javascript">
    function SR_IsListSelected(el)
    {
    for (var i = 0; i < el.length; i ++)
    if (el[i].selected ||
    el[i].checked)
    return i;
    return -1;
    }
    function SR_trim(f)
    {
    return f.toString().replace(/^[ ]+/, '').replace(/[ ]+$/, '');
    }
    function SR_submit(f)
    {
    f["field_name_first"].value = SR_trim(f["field_name_first"].value);
    f["field_email"].value = SR_trim(f["field_email"].value);
    f["field_phones"].value = SR_trim(f["field_phones"].value);
    if ((SR_focus = f["field_name_first"]) && f["field_name_first"].value.replace(/^[ ]+/, '').replace(/[ ]+$/, '').length < 1 || (SR_focus = f["field_email"]) && f["field_email"].value.replace(/^[ ]+/, '').replace(/[ ]+$/, '').length < 1) { alert("Укажите значения всех обязательных для заполнения полей (помечены звездочкой)"); SR_focus.focus(); return false; }
    if (!f["field_email"].value.match(/^[\+A-Za-z0-9][\+A-Za-z0-9\._-]*[\+A-Za-z0-9_]*@([A-Za-z0-9]+([A-Za-z0-9-]*[A-Za-z0-9]+)*\.)+[A-Za-z]+$/)) { alert("Некорректный синтаксис email-адреса!"); f["field_email"].focus(); return false; }
    return true;
    }
    </script>
    <form style="margin: 0; padding: 0;" name="SR_form" action="http://smartresponder.ru/subscribe.html" method="post" onsubmit="return SR_submit(this)"><input type=hidden name=version value="1"><input type=hidden name=tid value="0"><input type=hidden name=uid value=""><input type=hidden name=lang value="ru">
    <table width="400">
    <tr><td style="padding: 5px; border: 1px solid #c9c9c6;background-color: #f5f5f1;" align=center><table cellspacing=1 cellpadding=2 align=center>
    <tr><td><input type=hidden name="did[]" value="96952"></td></tr>
    <tr><td style="font-family: Arial; font-size: 10pt; color: #000000;" align="left">Ваше имя:<font color="#ff0000"><b>*</b></font></td></tr>
    <tr><td align="left"><input type=text size="20" style="font-family: Arial; font-size: 8pt; color: #000000; background-color: #ffffff; " name="field_name_first" value=""></td></tr>
    <tr><td style="font-family: Arial; font-size: 10pt; color: #000000;" align="left">Ваш e-mail:<font color="#ff0000"><b>*</b></font></td></tr>
    <tr><td align="left"><input type=text size="20" style="font-family: Arial; font-size: 8pt; color: #000000; background-color: #ffffff; " name="field_email" value=""></td></tr>
    <tr><td style="font-family: Arial; font-size: 10pt; color: #000000;" align="left">Контактные телефоны:</td></tr>
    <tr><td align="left"><input type=text size="20" style="font-family: Arial; font-size: 8pt; color: #000000; background-color: #ffffff; " name="field_phones" value=""></td></tr>
    <tr><td align="center"><input name="SR_submitButton" type=submit style="font-family: Arial; font-size: 10pt; color: #000000; font-weight: bold;" value="Получить!"></td></tr></table></td></tr></table></form><!-- SmartResponder.ru subscribe form code (end) -->
     
  2. Dobrozlo

    Dobrozlo Гость

    Кто может помочь - пишите в icq 10408 или skype vladimir_v_selivanov
     
  3. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    Уже пишу. скоро тут будет код.
     
  4. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0

    Это чистый javascript, он не умеет e-mail'ы отправлять.

    Мой способ - перехват после проверки и отправка в фоновом режиме всех данных формы - ajax'ом - скрипту на PHP, который уже и отправляет письмо.
    Итак.

    1.Добавим к скрипту пару строк:

    Код (Javascript):
    var xmlHttp = false;

    if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
    }

    function sendemail(postcont){
    url = 'sendemail.php?'+postcont;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
    }
    2.И к функции SR_submit(); (перед return true;) допишем небольшой обработчик:

    Код (Javascript):
        var field_name_first = f["field_name_first"].value;
    var field_email = f["field_email"].value;
    var field_phones = f["field_name_first"].value;

    var postcont = "field_name_first="+encodeURIComponent(field_name_first)+"&field_email="+encodeURIComponent(field_email)+"&field_phones="+encodeURIComponent(field_phones);

    sendemail(postcont);
    3.Затем создадим в директории страницы файл sendemail.php с таким содержимым:

    Код (Text):
    <?php $MailTo = "admin@1ive.ru"; //кому отправляем

    if (isset($_GET['field_name_first']))
    {
    $data = 'Name:'.$_GET['field_name_first'].'; E-mail:'.$_GET['field_email'].'; Phones:'.$_GET['field_phones'];
    mail($MailTo, "Сообщение из формы смартреспондера", $data);
    }
    ?>
    На сервере должна быть включена возможность отправки почты функцией mail();

    Собственно всё, хочу заметить что в Firefox 6.0 [sup]beta[/sup] скрипт не сработал у меня, в остальных браузерах всё ОК
     
  5. Dobrozlo

    Dobrozlo Гость

  6. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    У вас просто ЧПУ не пускает к sendemail.php

    Тогда вставьте этот код в index.php:

    Код (PHP):
    $MailTo = "admin@1ive.ru"; //кому отправляем

    if (isset($_GET['field_name_first']))
    {
    $data = 'Name:'.$_GET['field_name_first'].'; E-mail:'.$_GET['field_email'].'; Phones:'.$_GET['field_phones'];
    mail($MailTo, "Сообщение из формы смартреспондера", $data);
    }
    И поправьте функцию sendemail(); до такого вида.


    Код (Javascript):
    function sendemail(postcont){
    url = 'index.php?'+postcont;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
    }
     
  7. Dobrozlo

    Dobrozlo Гость

    Поменял, но письма все равно не приходят
     
  8. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
  9. Dobrozlo

    Dobrozlo Гость

    1ive, Спасибо большое!!!)
    Работает!!!)
    :love: :ithx: :YES:
     
  10. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    Модеры, поставьте плюсик). Человек не может...
     
Загрузка...
Похожие Темы - Помогите пожалуйста формой
  1. limbra
    Ответов:
    3
    Просмотров:
    51
  2. uxbmw3w
    Ответов:
    0
    Просмотров:
    72
  3. GREED
    Ответов:
    1
    Просмотров:
    542
  4. Рая
    Ответов:
    3
    Просмотров:
    791
  5. sonia2000
    Ответов:
    0
    Просмотров:
    964

Поделиться этой страницей