Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Miroslav Nikolov_341630

Спешно ! Проблем с контактна форма

Препоръчан отговор


Здравейте, имам следния проблем . Правя контактна форма с dropdown меню от която да се избере на кого да се изпрати имейл. Ползвам javascript валидатор . Проблема е уж успявам да изпратя съобщението а няма нищо на пощата на която изпращам . Много ви моля който може да помогне спешно е . Ето и кодовете:

 

HTML:

    <form id="send_requestForm" class="contact_form" action="#" method="POST">                <h2>Контактна форма</h2>                                        <input name="first_name" id="first_name" type="text" placeholder="Име" />                <input name="phone" id="phone" type="text" placeholder="Телефонен номер"/>                <input name="email" id="email" type="email" placeholder="E-mail" />                <input name="subject" id="subject" type="text" placeholder="Относно" />                <select name="email_to" id="email_to">                         <option value="0" disabled selected>Моля изберете</option>                            <option value="1" name='1'>име 1</option>                           <option value="2" name='2'>име 2</option>                        </select>                                <textarea name="message" id="message" placeholder="Съобщение..."></textarea>                <input type="button" id="form_submit" value="Изпрати" />            </form>

javascript:

// Send E-mail:    /* Contacts Form START */    required = ["first_name", "email", "message"];    email = $("input[name=email]");    // errornotice = $("#errorMsg");    // The text to show up within a field when it is incorrect    emptyerror = "Моля попълнете това поле.";    emailerror = "Моля въведете валиден e-mail адрес!";        // Clears any fields in the form when the user clicks on them    $(":input").focus(function(){               if ($(this).hasClass("error") ) {            $(this).val("");            $(this).removeClass("error");       }    });    $("#form_submit").on("click", function(){        $("#send_requestForm").submit();        return false;    });    $("#send_requestForm").submit(function(){        for (i=0;i<required.length;i++) {            var input = $('#'+required[i]);            if ((input.val() == "") || (input.val() == emptyerror)) {                input.addClass("error");                input.val(emptyerror);                // errornotice.fadeIn(750);            } else {                input.removeClass("error");            }        }        // Validate the e-mail.        if (!/^([a-zA-Z0-9_.-])[email protected](([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/.test(email.val())) {            email.addClass("error");            email.val(emailerror);        }        el = document.getElementById('email_to');if( el.options[el.selectedIndex].defaultSelected){    alert("Моля изберете име от падащото меню");    return false;}        //if any inputs on the page have the class 'error' the form will not submit        if ($(":input").hasClass("error")) {            return false;        } else {            var jqxhr = $.post( "php/send.php", {                first_name: $(this).find("input[name=first_name]").val(),                company_name: $(this).find("input[name=company_name]").val(),                email: $(this).find("input[name=email]").val(),                phone: $(this).find("input[name=phone]").val(),                subject: $(this).find("input[name=subject]").val(),                message: $(this).find("textarea[name=message]").val()            });            jqxhr.success(function(){                $("#form_submit").fadeOut(function(){                    $("#send_requestForm").append("<p style='text-align: center; background: green; padding: 10px 20px; margin: 0 20px; width: 330px;'><b>Съобщението е изпратено успешно!</b></p>");                });                            });            return false;        }    });    /* Contacts Form END */

PHP:

<?php $to = $_POST['email_to'];$email_subject = "сайт | Съобщение от уеб сайта";if($email_to == '1') { //if customer was selected    $to = '[email protected]';    }    else if($email_to == '2') { //if distribution was selected    $to = '[email protected]';    }extract($_POST);$email_message = <<<EOT    Съобщение, изпратено през контактната форма на сайта        Име: $first_name    E-mail: $email    Относно: $subject        Съобщение: $messageEOT;// create email headers$headers = 'From: '.$email."rn". 'Reply-To: '.$email."rn" . 'X-Mailer: PHP/' . phpversion() . 'MIME-Version: 1.0' . "rn" . 'Content-type: text/plain; charset=UTF-8' . "rn";if( $email != ""){    @mail($to, $email_subject, $email_message, $headers);}

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

А настройките на SMTP сървъра направил ли си и изобщо разрешено ли ти е да пращаш мейли?

П.С Никога не валидирай само с JavaScript! Валидацията, която правиш с JavaScript, е чисто визуална и е предназначена за потребителя (да може той да разбере, ако е объркал нещо)... истинската валидация се прави на сървъра, чрез real escape и другите функции за тази цел.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ами прегледай си PHP кода.Имаш проверка за var $mail_to която реално я няма, защото не я взимаш от POST-a ( присвояваш пост mail_to на променливата $to а не на $mail_to - която проверяваш ).Като цяло изобщо това която правиш не е добра практика. Прави проверки на server side, и ползвай някой mailer class ( примерно SwiftMailer ), погледни в php.net filter_var() и съпътстващите константи.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

×
×
  • Добави ново...