Пустые поля в электронной почте контактной формы: PHP не анализирует все значения

Моя контактная форма работает некорректно. Есть 2 раздела: первый набор полей позволяет вам выбрать тип формы для отображения (с помощью jquery), а другой набор полей предназначен для имени, электронной почты ... Проверка выполняется с помощью плагин jquery.HTML5Form

Проверка работает нормально, электронное письмо отправляется с контактной информацией (второй набор полей), но без каких-либо вводных текстов первого набора полей (кроме значений для переключателей).

HTML:

                        $(document).ready(function() {  
                            $('#projet').change(function(e) {
                            var current = $(this).val();
                            $('#cadreinfos').show();
                            $('#visible-spec').html($('#' + current).html());
                            initHTML5form ();
                            $('#devisresponse').empty();
                            });
                        });

                    <form action="devis.php" method="POST" id="devisform">
                        <fieldset id="cadreprojet">
                            <legend>Mon projet</legend>
                            <select name="projet" id="projet" title="Type de projet"/>
                            <OPTION selected >Type de projet
                            <OPTION value='devis-vitrine' >Formule "Vitrine"
                            <OPTION value='devis-site' >Formule "Mon site"
                            </select>
                <div id="visible-spec">
                            </div>

                                <div id="devis-vitrine" class="hidden-spec">
                <input type="text" name="activite" id="activite" title="Activité" size="30" maxlength="100" placeholder="Activité (entreprise, association...)" autocomplete="off" required/>
                <input type="text" name="fonction" id="fonction" title="Fonction" size="40" maxlength="120" placeholder="Quelle doit être pour vous la fonction du site ?" autocomplete="off" />
                <input type="text" name="public" id="public" title="Public" size="10" maxlength="120" placeholder="Public visé ?" autocomplete="off" />
                <input type="text" name="image" id="image" title="Image" size="35" maxlength="120" placeholder="Quelle image voulez-vous véhiculer ?" autocomplete="off"/>
                <div id="charte">Charte graphique existante ? <input type="radio" name="charte" id="charteN" value="Non" onClick="javascript:$('#couleurs').show();" required/>Non<input type="radio" name="charte" id="charteY" value="Oui" onClick="javascript:$('#couleurs').hide()" required>Oui</div>
                <input type="text" name="couleurs" id="couleurs" title="Couleurs" size="18" maxlength="120" placeholder="Couleurs souhaitées ?" autocomplete="off" required/>
                <input type="text" name="pages" id="pages" title="Nombre de pages" size="22" maxlength="3" placeholder="Nombre de pages estimé ?" autocomplete="off" required/>
                <input type="text" name="exemple" id="exemple" title="Exemple de site" size="35" maxlength="40" placeholder="Adresse d'un site existant pour inspiration" autocomplete="off"/>
                <input type="date" name="deadline" id="deadline" title="Deadline" size="27" maxlength="20" placeholder="Date de mise en ligne souhaitée" autocomplete="off" required/>
                <textarea name="comment" id="comment" title="Message" cols="80" rows="7" maxlength="1000" placeholder="Merci d'indiquer ici un court descriptif de votre futur site : sujet, rubriques, type de contenu (texte, images, vidéos...), fonctionnalités spécifiques, demandes particulières..." required ></textarea>
                                </div>
                                <div id="devis-site" class="hidden-spec">
                                    <input type="text" name="activite" id="activite" title="Activité" size="30" maxlength="100" placeholder="Activité (entreprise, association...)" autocomplete="off" required/>
                <input type="text" name="fonction" id="fonction" title="Fonction" size="40" maxlength="120" placeholder="Quelle doit être pour vous la fonction du site ?" autocomplete="off" />
                <input type="text" name="public" id="public" title="Public" size="10" maxlength="120" placeholder="Public visé ?" autocomplete="off" />
                <input type="text" name="image" id="image" title="Image" size="35" maxlength="120" placeholder="Quelle image voulez-vous véhiculer ?" autocomplete="off"/>
                <div id="charte">Charte graphique existante ? <input type="radio" name="charte" id="charteN" value="Non" onClick="javascript:$('#couleurs').show();" required/>Non<input type="radio" name="charte" id="charteY" value="Oui" onClick="javascript:$('#couleurs').hide()" required>Oui</div>
                <input type="text" name="couleurs" id="couleurs" title="Couleurs" size="18" maxlength="120" placeholder="Couleurs souhaitées ?" autocomplete="off" required/>
                <input type="text" name="admins" id="admins" title="Nombre d'administrateurs" size="27" maxlength="3" placeholder="Nombre d'administrateurs du site ?" autocomplete="off" required/>
                <input type="text" name="exemple" id="exemple" title="Exemple de site" size="35" maxlength="40" placeholder="Adresse d'un site existant pour inspiration" autocomplete="off"/>
                <input type="date" name="deadline" id="Deadline" title="Deadline" size="27" maxlength="20" placeholder="Date de mise en ligne souhaitée" autocomplete="off" required/>
                <div id="charte">Quel contenu voulez-vous mettre à jour vous-même : <input type="checkbox" name="actu" id="actu" value="Actualités" required/>Actualités<input type="checkbox" name="photos" id="photos" value="Photos" required/>Photos<input type="checkbox" name="videos" id="videos" value="Vidéos" required/>Vidéos<input type="checkbox" name="cal" id="cal" value="Calendrier" required/>Calendrier / Réservations</div>
                <textarea name="comment" id="comment" title="Message" cols="80" rows="7" maxlength="1000" placeholder="Merci d'indiquer ici un court descriptif de votre futur site : sujet, rubriques, type de contenu (texte, images, vidéos...), fonctionnalités spécifiques, demandes particulières..." required ></textarea>
                                </div>

                        </fieldset>
                        <fieldset id="cadreinfos">
                            <legend>Mes coordonnées</legend>

                            <label for="name"></label>
                            <input type="text" name="name" id="name" title="Nom" maxlength="60" placeholder="Nom" autocomplete="off" required/>

                            <label for="lastname"></label>
                            <input type="text" name="lastname" id="lastname" title="Prénom" maxlength="60" placeholder="Prénom" autocomplete="off" required/>

                            <label for="email"></label>
                            <input type="email" name="email" id="email" title="Email" maxlength="40" placeholder="Email" autocomplete="off" required/>

                            <label for="website"></label>
                            <input type="url" name="website" id="website" title="Site internet" maxlength="40" placeholder="http://" autocomplete="off" />

                            <label for="telephone"></label>
                            <input type="tel" name="telephone" id="telephone" title="Téléphone" maxlength="20" placeholder="Téléphone" autocomplete="off"/>

                            <input type="submit" value="Envoyer" class="submit"/><div id="devisresponse"></div>

                        </fieldset>
                    </form>



                        function initHTML5form(){

                            $('#devisform').html5form({
                                allBrowsers : true,
                                responseDiv : '#devisresponse',
                                messages : 'fr',
                                colorOn :'#8ab29f',
                                colorOff :'#494343'
                            });

                        }

PHP:

$to = "[email protected]";
$subject = "Demande de devis";
$name_field = $_POST['name'];
$lastname_field = $_POST['lastname'];
$email_field = $_POST['email'];
$url_field = $_POST['website'];
$tel_field = $_POST['telephone'];

$activite = $_POST['activite'];
$fonction = $_POST['fonction'];
$public = $_POST['public'];
$image = $_POST['image'];
$charte = $_POST['charte'];
$couleurs = $_POST['couleurs'];
$pages = $_POST['pages'];
$exemple = $_POST['exemple'];
$deadline = $_POST['deadline'];
$message = $_POST['comment'];

$from = "From: $email_field\r\n";

$body = "De: $name_field $lastname_field\n $tel_field\n $url_field\n\n
Type de projet: $projet\n\n
Activité:$activite\n
Fonction:$fonction\n
Public:$public\n
Image:$image\n
Charte graphique:$charte\n
Couleurs:$couleurs\n
Nombre de pages:$pages\n
Exemple de site:$exemple\n
Deadline:$deadline\n\n
Message:\n $message";

echo "Merci $lastname_field, votre email a été envoyé !";  
mail($to, $subject, $body, $from);

(извините, это на французском)

Посмотрите его здесь в прямом эфире. Затем нажмите в нижнем левом углу и выберите первый вариант выбора.


person Julien CHAZAL    schedule 18.11.2011    source источник


Ответы (1)


Хорошо, если вы не пропустили код из своего примера, $projet не установлен в вашем PHP-коде.

person Mech Software    schedule 18.11.2011
comment
Спасибо ! Я знаю, что он пропущен, и это странно, потому что $ projet возвращает значение в полученном мной электронном письме. Значение - это идентификатор div, отображаемый при выборе варианта выбора. - person Julien CHAZAL; 18.11.2011
comment
включен register_globals? Это установило бы $ projet, но очень не рекомендуется его использовать. - person Mech Software; 18.11.2011
comment
я не знаю (PHP мне не друг ^^). Единственный написанный мной код php - это тот, который я поместил в этот пост. - person Julien CHAZAL; 18.11.2011
comment
попробуйте установить $ project из переменных $ _POST. вы можете использовать print_r ($ _ POST), чтобы увидеть все данные, которые публикует ваша форма. - person Mech Software; 18.11.2011
comment
я добавил: $ projet = htmlentities ($ _ POST ['projet']); . Вот данные: Array ([projet] = ›devis-vitrine [activite] =› [fonction] = ›[public] =› [image] = ›[charte] =› Non [couleurs] = ›[pages] =› [пример] = ›[deadline] =› [комментарий] = ›[name] =› wlrsgnalknv [lastname] = ›projbsflgkbnlkd [email] =› [email protected] [website] = ›[phone] =› 235453). поэтому php не анализирует ввод текста! - person Julien CHAZAL; 18.11.2011