Как сделать отправку на почту данных

Просмотр 30 сообщений - с 1 по 30 (из 30 всего)
  • Автор
    Сообщения
  • #7307 Ответ

    Fadalmahr
    Участник

    Вот нашел пример и хотел бы что на почту отправлялось и что бы без лишних obrabotka_form.php и т.д на одной странице!
    Кому отправлять и отправитель по разному как http://seroff.lixh.ru/%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B/ только хз как оно там

    
       <p> Форма заказа обучающего видеоматериала: </p>
    <form action="obrabotka_form.php" method="post" name="send">
    <p> Ваше имя: * </p>
    <p> <input type="text" name="name" size="40"> </p>
    <p> Ваш заказ: </p>
    <p> <select name="spisok">
    <option value="HTML"> Видео-урок по HTML </option>
    <option value="CSS"> Видео-урок по CSS </option>
    <option value="PHP"> Видео-урок по PHP </option>
    </select> </p>
    <p> Выберите носитель: </p>
    <p> <input type="radio" name="disk" value="CD" checked> CD </p>
    <p> <input type="radio" name="disk" value="DVD"> DVD </p>
    <p> <input type="radio" name="disk" value="USB Flash"> USB Flash </p>
    <p> Ваш E-mail: * </p>
    <p> <input type="text" name="mail" size="40"> </p>
    <p> Ваш адрес: * </p>
    <p> <textarea name="adress" cols="30" rows="5"> </textarea> </p>
    <p> <input type="reset" value="Сбросить"> </p>
    <p> <input type="submit" value="Отправить"> </p>
    </form>
    

    ы
    То есть:
    Отправитель: pochta1@blablablabla.ru
    Кому: pochta2@blablablabla.ru
    А тема от сюда
    <p> Форма заказа обучающего видеоматериала: </p>

    #7309 Ответ

    Fadalmahr
    Участник

    Почему пришло так:

    Код

    
     <b>Имя отправителя</b>: seroff
           <b> Контактный телефон</b>: +3809532523422
            <b>Контактный email</b>: bvv328@yandex.ua
           <b> Сообщение</b>: adgfsdgf
    
    
      <?php 
    function show_form() 
    { 
    ?> 
    <form action="" method=post> 
    <div align="center"> 
                  <br />Имя*<br /> 
                  <input type="text" name="name" size="40"> 
                  <br />Контактный телефон<br /> 
                  <input type="text" name="tel" size="40"> 
                  <br />Контактный email*<br /> 
                  <input type="text" name="email" size="40"> 
                  <br />Teма<br /> 
                  <input type="text" name="title" size="40"> 
                  <br />Сообщение*<br /> 
                  <textarea rows="10" name="mess" cols="30"></textarea> 
                  <br /><input type="submit" value="Отправить" name="submit"> 
    </div> 
    </form> 
    * Помечены поля, которые необходимо заполнить 
    <? 
    } 
     
    function complete_mail() { 
            $_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 0, 1000); 
            $_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000); 
            $_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 0, 30); 
            $_POST['tel'] =  substr(htmlspecialchars(trim($_POST['tel'])), 0, 30); 
            $_POST['email'] =  substr(htmlspecialchars(trim($_POST['email'])), 0, 50); 
            // если не заполнено поле "Имя" - показываем ошибку 0 
            if (empty($_POST['name'])) 
                 output_err(0); 
            // если неправильно заполнено поле email - показываем ошибку 1 
            if(!preg_match("/[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i", $_POST['email'])) 
                 output_err(1); 
            // если не заполнено поле "Сообщение" - показываем ошибку 2 
            if(empty($_POST['mess'])) 
                 output_err(2); 
            // создаем наше сообщение 
            $mess = ' 
            <b>Имя отправителя</b>: '.$_POST['name'].' 
           <b> Контактный телефон</b>: '.$_POST['tel'].' 
            <b>Контактный email</b>: '.$_POST['email'].' 
           <b> Сообщение</b>: '.$_POST['mess']; 
            // $to - кому отправляем 
            $to = 'Почта'; 
            // $from - от кого 
            $from='Почта'; 
            mail($to, $_POST['title'], $mess, "From:".$from); 
            echo 'Спасибо! Ваше письмо отправлено.'; 
    } 
     
    function output_err($num) 
    { 
        $err[0] = 'ОШИБКА! Не введено имя.'; 
        $err[1] = 'ОШИБКА! Неверно введен e-mail.'; 
        $err[2] = 'ОШИБКА! Не введено сообщение.'; 
        echo '<p>'.$err[$num].'</p>'; 
        show_form(); 
        exit(); 
    } 
     
    if (!empty($_POST['submit'])) complete_mail(); 
    else show_form(); 
    ?>
    

    А жирный текс где?

    ы
    Я не могу выделить жирным текст, как сделать??

    ы
    Мне единственное что нужно, это выделить жирным и всё

    #7310 Ответ

    Nachruer
    Участник

    Почему пришло так:

    Не правильно составлен header сообщения.

    
    $from   = array();
    $from[] = "MIME-Version: 1.0";
    $from[] = "Content-type: text/html; charset=UTF-8";
    $from[] = "From: ".$_POST['email'];
    $from[] = "Reply-To: ".$_POST['email'];
     
    mail($to, $_POST['title'], $mess, implode(PHP_EOL, $from));
    
    #7311 Ответ

    Fadalmahr
    Участник

    Вот так получилось:

    
    <?php 
    function show_form() 
    { 
    ?> 
    <form action="" method=post> 
    <div align="center"> 
                  <br />Имя*<br /> 
                  <input type="text" name="name" size="40"> 
                  <br />Контактный телефон<br /> 
                  <input type="text" name="tel" size="40"> 
                  <br />Контактный email*<br /> 
                  <input type="text" name="email" size="40"> 
                  <br />Teма<br /> 
                  <input type="text" name="title" size="40"> 
                  <br />Сообщение*<br /> 
                  <textarea rows="10" name="mess" cols="30"></textarea> 
                  <br /><input type="submit" value="Отправить" name="submit"> 
    </div> 
    </form> 
    <p align="center">* Помечены поля, которые необходимо заполнить </p>
    <? 
    } 
     
    function complete_mail() { 
     
     
     
            $_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 0, 1000); 
            $_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000); 
            $_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 0, 30); 
            $_POST['tel'] =  substr(htmlspecialchars(trim($_POST['tel'])), 0, 30); 
            $_POST['email'] =  substr(htmlspecialchars(trim($_POST['email'])), 0, 50); 
            // если не заполнено поле "Имя" - показываем ошибку 0 
            if (empty($_POST['name'])) 
                 output_err(0); 
            // если неправильно заполнено поле email - показываем ошибку 1 
            if(!preg_match("/[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i", $_POST['email'])) 
                 output_err(1); 
            // если не заполнено поле "Сообщение" - показываем ошибку 2 
            if(empty($_POST['mess'])) 
                 output_err(2); 
            // создаем наше сообщение 
            $mess = ' 
            <b>Имя отправителя</b>: '.$_POST['name'].' <br>
           <b> Контактный телефон</b>: '.$_POST['tel'].' <br>
            <b>Контактный email</b>: '.$_POST['email'].' <br>
           <b> Сообщение</b>: '.$_POST['mess'].'<br>'; 
            // $to - кому отправляем 
            $to = 'dle6z64dy8ir@mail.ru'; 
            // $from - от кого 
            $from   = array();
            //$ot_from='no-reply@mail.ru'; 
            
            //mail($to, $_POST['title'], $mess, "From:".$from); 
            
        $from[] = "MIME-Version: 1.0";
        $from[] = "Content-type: text/html; charset=UTF-8";
        //$from[] = "From: ".$ot_from;
        $from[] = "From: ".$_POST['email'];
        $from[] = "Reply-To: ".$_POST['email'];
            mail($to, $_POST['title'], $mess, implode(PHP_EOL, $from)); 
            echo '<p align="center">Спасибо! Ваше письмо отправлено.</p>'; 
    } 
     
    function output_err($num) 
    { 
        $err[0] = 'ОШИБКА! Не введено имя.'; 
        $err[1] = 'ОШИБКА! Неверно введен e-mail.'; 
        $err[2] = 'ОШИБКА! Не введено сообщение.'; 
        echo '<p align="center">'.$err[$num].'</p>'; 
        show_form(); 
        exit(); 
    } 
     
    if (!empty($_POST['submit'])) complete_mail(); 
    else show_form(); 
    ?>
    

    Только сообщение в одной строке, а как сделать что как заполняет так и отправляет?

    #7312 Ответ

    Nachruer
    Участник

    Только сообщение в одной строке, а как сделать что как заполняет так и отправляет?

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

    #7313 Ответ

    Fadalmahr
    Участник

    Текст который в сообщенее:
    Получается не:

    gsfdgd
    srfdghdsf
    swgdfg
    sgs
    gdsg
    sdg
    s
    А вот так: gsfdgd srfdghdsf swgdfg sgs gdsg sdg s
    А мне надо что бы как пишет

    #7314 Ответ

    Nachruer
    Участник

    А мне надо что бы как пишет

    Скорее всего не получиться, или придется долго делать танцы с бубнами.
    Потому что данные формы фильтруются:

    
    $_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
    

    дабы избежать какой либо инъекции через эту форму, если убрать фильтр, то ваш сайт просто взломают через эту форму, внедрят туда вредоносный код, и будет он работать на “дядю”, а ваш сайт будет считаться вирусоопасным и в скором времени попадет в черные списки, Вам это нужно?

    #7315 Ответ

    Fadalmahr
    Участник

    А тут проблем с этим нету:
    http://seroff.lixh.ru/%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B/
    Сделано конструктором site.pro
    Только как так то?
    Так что мне что то менять?

    #7316 Ответ

    Nachruer
    Участник

    А тут проблем с этим нету:
    http://seroff.lixh.ru/%D0%9A%D0%BE%D…A%D1%82%D1%8B/

    Ну там они…

    долго делать танцы с бубнами.

    т.е. это не за пять минут делается…

    ы
    Как вариант можно попробовать “разделитель” заменить на <br>
    Но каким будет разделитель – ХЗ, если разделитель сделать “пробел”, то все слова будут тупо в одну колонку, менять шило на мыло не вижу смысла.

    #7317 Ответ

    Fadalmahr
    Участник

    Б…. п… Я в шоке…

    Добавлено через 7 часов 25 минут
    Не кто не может, а люди на site.pro как то сделали?

    #7318 Ответ

    OliveR
    Участник

    Сообщение было отмечено автором темы, экспертом или модератором как ответ 29-ую строку попробуйте заменить на:

    
    $_POST['mess'] =  substr(nl2br(trim($_POST['mess'])), 0, 1000000);
    

    ы
    Вернее, так:

    
    $_POST['mess'] =  substr(nl2br(htmlspecialchars(trim($_POST['mess']))), 0, 1000000);
    
    #7319 Ответ

    Fadalmahr
    Участник

    Я тут подумал как то не красиво, то что перекидывает Код

    
    Спасибо! Ваше письмо отправлено.
    

    отдельно, всплывающим сообщением как тут можно сделать? Миниатюры
     

    #7320 Ответ

    Nachruer
    Участник

    Fadalmahr, вотЪ

    
    <html>
        <head>
            <title>Функция alert</title>
        </head>
        <body>
            <script type="text/javascript">
            //Выводим сообщение
            alert('Форма отправлена.');
           </script>
        </body>
    </html>
    
    #7321 Ответ

    Fadalmahr
    Участник

    А как в этот код поставить?

    #7322 Ответ

    Nachruer
    Участник

    Fadalmahr, как то так:

    
    mail($to, $_POST['title'], $mess, implode(PHP_EOL, $from)); 
    echo '<script type="text/javascript">alert('Спасибо! Ваше письмо отправлено.');</script>';
    
    #7323 Ответ

    Fadalmahr
    Участник

    А форму можно как при ошибке оставить ?

    #7324 Ответ

    Nachruer
    Участник

    А форму можно как при ошибке оставить ?

    Не понял вопроса, какую форму при какой ошибке?

    #7325 Ответ

    Fadalmahr
    Участник

    Если как это ошибка форма остается как ее заполняли и выдает ошибку вверху, но мне сообщения вплывающее

    у

    
    Parse error: syntax error, unexpected 'Спасибо' (T_STRING), expecting ',' or ';'
    

    Вот такая ошибка при добавлении echo ‘<script type=”text/javascript”>alert(‘Спасибо! Ваше письмо отправлено.’);</script>’;

    #7326 Ответ

    Nachruer
    Участник

    Fadalmahr,

    
    echo '<script type="text/javascript">alert("Спасибо! Ваше письмо отправлено.");</script>';
    
    #7327 Ответ

    Fadalmahr
    Участник

    Нужно сделать что бы при этом сообщении форма оставалась и при обновлении страницы не посылалась сама

    ы
    Страница пустая

    Нужно сделать что бы при этом сообщении форма оставалась и при обновлении страницы не посылалась сама

    Какая форма, в моем понятии форма это все элементы HTML обрамленные тегом form:

    
    <form>
    ...
    "тело" формы
    ...
    </form>
    

    Конкретней выражайте задачи, и код прикладывайте, тот что у вас есть на данный момент.
    Типа есть код:

    
    ...
    

    Делает то, то, так то, так то. (как пример если что то выводит, прям показываете что)
    Нужно что бы делал то, то, так то, так то. (а тут показываете что нужно вам конкретно)

    #7328 Ответ

    Fadalmahr
    Участник

    Я пробовал так:

    
    echo '<script type="text/javascript">alert("Спасибо! Ваше письмо отправлено.");</script>';
    exit(show_form());
    

    Но при обновлении страницы снова отравляет, форма пустая а сообщение старое приходит

    ы
    Весь код:

    
    <html>
      <head>
        <title>Заполнение формы</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="shortcut icon" href="favicon.png" type="image/png">
        <style></style>
      </head>
      <body>
      
      <?php 
    function show_form() 
    { 
    ?> 
    <form action="" method=post> 
    <div align="center"> 
                  <br />Имя*<br /> 
                  <input type="text" name="name" size="40"> 
                  <br />Контактный телефон<br /> 
                  <input type="text" name="tel" size="40"> 
                  <br />Контактный email*<br /> 
                  <input type="text" name="email" size="40"> 
                  <br />Teма<br /> 
                  <input type="text" name="title" size="40"> 
                  <br />Сообщение*<br /> 
                  <textarea rows="10" name="mess" cols="30"></textarea> 
                  <br /><input type="submit" value="Отправить" name="submit"> 
    </div> 
    </form> 
    <p align="center">* Помечены поля, которые необходимо заполнить </p>
    <? 
    } 
     
    function complete_mail() { 
     
     
     
            $_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 0, 1000); 
          //$_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000); 
        $_POST['mess'] =  substr(nl2br(htmlspecialchars(trim($_POST['mess']))), 0, 1000000);
        $_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 0, 30); 
            $_POST['tel'] =  substr(htmlspecialchars(trim($_POST['tel'])), 0, 30); 
            $_POST['email'] =  substr(htmlspecialchars(trim($_POST['email'])), 0, 50); 
            // если не заполнено поле "Имя" - показываем ошибку 0 
            if (empty($_POST['name'])) 
                 output_err(0); 
            // если неправильно заполнено поле email - показываем ошибку 1 
            if(!preg_match("/[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i", $_POST['email'])) 
                 output_err(1); 
            // если не заполнено поле "Сообщение" - показываем ошибку 2 
            if(empty($_POST['mess'])) 
                 output_err(2); 
            // создаем наше сообщение 
            $mess = ' 
            <b>Имя отправителя</b>: '.$_POST['name'].' <br>
           <b> Контактный телефон</b>: '.$_POST['tel'].' <br>
            <b>Контактный email</b>: '.$_POST['email'].' <br>
           <b> Сообщение</b>: '.$_POST['mess'].'<br>'; 
            // $to - кому отправляем 
            $to = 'почта'; 
            // $from - от кого  
            $from   = array();
            //$ot_from='почта'; 
            
            //mail($to, $_POST['title'], $mess, "From:".$from); 
            
        $from[] = "MIME-Version: 1.0";
        $from[] = "Content-type: text/html; charset=UTF-8";
        //$from[] = "From: ".$ot_from;
        $from[] = "From: ".$_POST['email'];
        $from[] = "Reply-To: ".$_POST['email'];
            mail($to, $_POST['title'], $mess, implode(PHP_EOL, $from)); 
            //echo '<script type="text/javascript">  alert("Форма отправлена."); </script>'; 
            
            echo '<script type="text/javascript">alert("Спасибо! Ваше письмо отправлено.");</script>';
        exit(show_form());
    } 
     
    function output_err($num) 
    { 
        $err[0] = 'ОШИБКА! Не введено имя.'; 
        $err[1] = 'ОШИБКА! Неверно введен e-mail.'; 
        $err[2] = 'ОШИБКА! Не введено сообщение.'; 
        echo '<p align="center">'.$err[$num].'</p>'; 
        show_form(); 
        exit(); 
    } 
     
    if (!empty($_POST['submit'])) complete_mail(); 
    else show_form(); 
    ?> 
      </body>
    </html>
    
    #7329 Ответ

    Nachruer
    Участник

    Весь код:

    код есть, уже хорошо.

    Что конкретно делает не так, например нажали это вышло это, но нужно вот это.

    #7330 Ответ

    Fadalmahr
    Участник

    При обновлении страницы форма чистая но сама отправила письмо при обновлении страницы, а я же не успел нечего сделать

    ы
    http://rghost.net/private/7qqSx4S54/164ca4759f5a4414d7189d399e3f4f07

    #7331 Ответ

    Nachruer
    Участник

    Fadalmahr, Посмотрел, а зачем Вы обновляете страничку?

    #7332 Ответ

    Fadalmahr
    Участник

    Надо убрать короче, а то 10000 одинаковых писем не хорошо

    #7333 Ответ

    Nachruer
    Участник

    Fadalmahr,

    
    <form action="" method=post> 
    <div align="center"> 
                  <br />Имя*<br /> 
                  <input type="text" name="name" size="40"> 
                  <br />Контактный телефон<br /> 
                  <input type="text" name="tel" size="40"> 
                  <br />Контактный email*<br /> 
                  <input type="text" name="email" size="40"> 
                  <br />Teма<br /> 
                  <input type="text" name="title" size="40"> 
                  <br />Сообщение*<br /> 
                  <textarea rows="10" name="mess" cols="30"></textarea> 
                  <br /><input type="submit" value="Отправить" name="submit"> 
    </div> 
    </form>
    

    Вам нужна именно такая форма, со всеми полями?
    Что должно происходить по нажатию кнопочки “Отправить”? (отправить на почту письмо, сообщить об отправке, и куда нужно возвратиться на эту же форму, или может на главную страницу)
    Как у Вас реализован механизм перехода на это форму (как пример переход с главной страницы по ссылке)?
    Имя этого файла (где размещена эта форма)

    #7334 Ответ

    Fadalmahr
    Участник

    Да не ссылкой не хорошо, а вот вернуть форму это норм

    Потому как я может буду использовать как инклуд, что скорее всего и будет

    #7335 Ответ

    Nachruer
    Участник

    Да не ссылкой не хорошо, а вот вернуть форму это норм

    Я просто не могу понять куда вы уйдете с формы, или у вас сайт тупо из одной формы?

    ы

    Потому как я может буду использовать как инклуд, что скорее всего и будет

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

    #7336 Ответ

    Fadalmahr
    Участник

    Не по ссылке не вариант я инклудом хочу сделать и пусть страница обновляется, но ссылки это не то….

    Видимо профессионалов нет

    #7337 Ответ

    Fadalmahr
    Участник

    Вот тут работает, как надо, только куда оно уходит я не понял, помогите

Просмотр 30 сообщений - с 1 по 30 (из 30 всего)
Ответить в теме: Как сделать отправку на почту данных
Ваша информация: