IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Formulaire de contact, ajout d'un champs numérique


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Formulaire de contact, ajout d'un champs numérique
    Bonjour,

    Je souhaite intégrer un formulaire de contact sur mon petit site. J'en ai trouvé un qui fonctionne très bien mais j'aimerais ajouté un champs 'Téléphone'. Côté HTML, aucun soucis. Par contre, je n'arrive pas à le faire fonctionné en ajoutant dans le code PHP. Dès que je le remplis et que je le valide, ça m'indique que l'envoi du mail a échoué.

    Malgré mes maigres connaissances dans ce langage, j'ai tenté de résoudre le soucis en m'appuyant également sur d'autres exemples mais sans succès.

    Ce que je souhaite, c'est d'une part que l'envoi du mail fonctionne mais également que le numéro de téléphone s'affiche dans le message que je recevrais et qu'a contrario des autres champs, celui-ci ne soit pas obligatoire. Et si possible, d'effectuer une vérification pour ce champs c'est à dire que ce sont bien des valeurs numériques qui y sont inscrite.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    <?php
        /*
        	********************************************************************************************
        	CONFIGURATION
        	********************************************************************************************
        */
        // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
        $destinataire = 'xxx@gmail.com';
     
        // copie ? (envoie une copie au visiteur)
        $copie = 'oui';
     
        // Action du formulaire (si votre page a des paramètres dans l'URL)
        // si cette page est index.php?page=contact alors mettez index.php?page=contact
        // sinon, laissez vide
        $form_action = '';
     
        // Messages de confirmation du mail
        $message_envoye = "Votre message nous est bien parvenu !";
        $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
     
        // Message d'erreur du formulaire
        $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
     
        /*
        	********************************************************************************************
        	FIN DE LA CONFIGURATION
        	********************************************************************************************
        */
     
        /*
         * cette fonction sert à nettoyer et enregistrer un texte
         */
        function Rec($text)
        {
        	$text = htmlspecialchars(trim($text), ENT_QUOTES);
        	if (1 === get_magic_quotes_gpc())
        	{
        		$text = stripslashes($text);
        	}
     
        	$text = nl2br($text);
        	return $text;
        };
     
        /*
         * Cette fonction sert à vérifier la syntaxe d'un email
         */
        function IsEmail($email)
        {
        	$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
        	return (($value === 0) || ($value === false)) ? false : true;
        }
     
        // formulaire envoyé, on récupère tous les champs.
        $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
        $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
    	$telephone   = (isset($_POST['telephone']))   ? Rec($_POST['telephone'])   : '';
        $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
        $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
     
        // On va vérifier les variables et l'email ...
        $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
        $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
     
        if (isset($_POST['envoi']))
        {
        	if (($nom != '') && ($email != '') && ($objet != '') && ($telephone != '') && ($message != ''))
        	{
        		// les 4 variables sont remplies, on génère puis envoie le mail
        		$headers  = 'From:'.$nom.' <'.$email.'>' . "\r\n";
        		//$headers .= 'Reply-To: '.$email. "\r\n" ;
        		//$headers .= 'X-Mailer:PHP/'.phpversion();
     
        		// envoyer une copie au visiteur ?
        		if ($copie == 'oui')
        		{
        			$cible = $destinataire.';'.$email;
        		}
        		else
        		{
        			$cible = $destinataire;
        		};
     
        		// Remplacement de certains caractères spéciaux
        		$caracteres_speciaux     = array(''', '', '&quot;', '<br>', '<br />', '&lt;', '&gt;', '&amp;', '',   '&rsquo;', '&lsquo;');
        		$caracteres_remplacement = array("'",      "'",        '"',      '',    '',       '<',    '>',    '&',     '...', '>>',      '<<'     );
         
        		$objet = html_entity_decode($objet);
        		$objet = str_replace($caracteres_speciaux, $caracteres_remplacement, $objet);
         
        		$message = html_entity_decode($message);
        		$message = str_replace($caracteres_speciaux, $caracteres_remplacement, $message);
    			
        		// Envoi du mail
        		$num_emails = 0;
        		$tmp = explode(';', $cible);
        		foreach($tmp as $email_destinataire)
        		{
        			if (mail($email_destinataire, $objet, $message, $headers))
        				$num_emails++;
        		}
         
        		if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
        		{
        			echo '<p>'.$message_envoye.'</p>';
        		}
        		else
        		{
        			echo '<p>'.$message_non_envoye.'</p>';
        		};
        	}
        	else
        	{
        		// une des 3 variables (ou plus) est vide ...
        		echo '<p>'.$message_formulaire_invalide.'</p>';
        		$err_formulaire = true;
        	};
        }; // fin du if (!isset($_POST['envoi']))
         
        if (($err_formulaire) || (!isset($_POST['envoi'])))
        {
        	// afficher le formulaire
        	echo '
        	<form id="contact" method="post" action="'.$form_action.'">
        	<fieldset><legend>Vos coordonnées</legend>
        		<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" /></p>
        		<p><label for="email">Email :</label><input type="text" id="email" name="email" value="'.stripslashes($email).'" /></p>
    			<p><label for="telephone">Téléphone :</label><input type="text" id="telephone" name="telephone" value="'.stripslashes($email).'" /></p>
        	</fieldset>
         
        	<fieldset><legend>Votre message :</legend>
        		<p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" /></p>
        		<p><label for="message">Message :</label><textarea id="message" name="message" cols="30" rows="8">'.stripslashes($message).'</textarea></p>
        	</fieldset>
         
        	<div style="text-align:center;"><input type="reset" value="Effacer le formulaire" /> <input type="submit" name="envoi" value="Envoyer le message" /></div>
        	</form>';
        };
        ?>
    Ps : je précise les deux rajouts que j'ai fait qui me semble correct et qui ne pose pas de problème à l'envoi du mail :

    Ligne 58 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $telephone   = (isset($_POST['telephone']))   ? Rec($_POST['telephone'])   : '';
    Ligne 68 :

    En vous remerciant d'avance.

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Salut,
    Citation Envoyé par Xhander Voir le message
    Dès que je le remplis et que je le valide ça m'indique que l'envoi du mail a échoué
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
    Cette condition n'est pas vraiment la bonne, parce que la variable $copie vaut toujours à "oui", donc la deuxième partie de la condition ne sert à rien vu qu'elle est toujours fausse.

    On peut la simplifier pour ne vérifier que la valeur de $num_emails si elle est supérieur à 0 (soit 1 soit 2) :

    Citation Envoyé par Xhander Voir le message
    Ce que je souhaite, c'est d'une part que l'envoi du mail fonctionne mais également que le numéro de téléphone s'affiche dans le message que je recevrais
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="text" id="telephone" name="telephone" value="'.stripslashes($email).'" /></p>';
    Déjà il faut afficher le numéro de tél ici et pas l'email, puis tu veux récupérer le numéro de tél dans le message reçu par cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<p>'.$message_envoye.'</p>';
    Citation Envoyé par Xhander Voir le message
    celui-ci ne soit pas obligatoire.
    Dans ce cas, il faut l'exclure de la condition
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($nom != '') && ($email != '') && ($objet != '') && ($telephone != '') && ($message != ''))
    Citation Envoyé par Xhander Voir le message
    Et si possible, d'effectuer une vérification pour ce champs c'est à dire que ce sont bien des valeurs numériques qui y sont inscrite
    Une expression régulière qui vérifie si la valeur tél est numérique suffira :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $telIsValide=preg_match("#^[\d]+$#", $telephone);
    echo $telIsValide==1 ? "tel Ok":"tel pas ok";
    /* comme il est possible de définir le nombre de chiffres , par exemple si on veut que le numéro de tél contient exactement 10 chiffres, on ajoute {10} après ], ce qui donne : "#^[\d]{10}+$#" */

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour et merci de ta réponse.

    J'ai modifié la ligne concernant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
    Par :

    Mais je ne reçois aucune copie sur mon autre mail quand je fais des tests.

    J'ai modifié l'input concernant le champs téléphone (stripslashes($telephone)) et j'ai supprimé && ($telephone != '') (je m'en doutais mais je n'étais sur de rien).

    Déjà il faut afficher le numéro de tél ici et pas l'email, puis tu veux récupérer le numéro de tél dans le message reçu par cette ligne ?
    Simplement que le numéro de téléphone indiqué dans le formulaire, s'il l'est, soit affiché avec le message dans le mail que je recevrais.

    Pour la vérification numérique du champs 'Téléphone', ça fonctionne très bien mais il y a deux soucis. Le premier est que si j'indique moins de 10 chiffres dans le champs; ça m'indique bien 'Tel pas ok' mais le mail est quand même envoyé. Si je laisse le champs vide (car non obligatoire), ça m'indique aussi 'Tel pas ok'.

    Deuxièmement, le message 'Tel pas ok' apparaît dès que j'entre dans la page de contact, sans avoir validé quoique ce soit. Si je supprime l'echo, et vu que l'envoi se fait bel et bien peu importe ce qu'il y a dans le champs, les visiteurs ne seront pas au courant d'une mauvaise saisie.

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Citation Envoyé par Xhander Voir le message
    Mais je ne reçois aucune copie sur mon autre mail quand je fais des tests.
    Tu le recevais avant de faire la modification ?

    Citation Envoyé par Xhander Voir le message
    Simplement que le numéro de téléphone indiqué dans le formulaire, s'il l'est, soit affiché avec le message dans le mail que je recevrais.
    Dans ce cas, il faut juste concaténer la variable $message avec $telephone (seulement quand le tél n'est pas vide!)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (isset($_POST['envoi'])){
           /* les 4 premières variables $nom,$email,$objet,$message sont obligatoires, par-contre le $telephone il peut être soit vide, soit pas vide ET Valide, donc tu dois définir $telIsValide comme ça:*/
            $telIsValide=( preg_match("#^[\d]{10}+$#", $telephone)==1 && !empty($telephone) ) || empty($telephone) ;
            if ( !empty($nom) && !empty($email) && !empty($objet)  && !empty($message) && $telIsValide ){//$telIsValide retourne soit true soit false ici.
                 if(!empty($telephone)){//on ajoute le numéro de tel dans $message s'il n'est pas vide.
                      $message.=", Teléphone :".$telephone;
                 }
                 /* la suite du code ...*/
            }
    }

    Citation Envoyé par Xhander Voir le message
    si j'indique moins de 10 chiffres dans le champs; ça m'indique bien 'Tel pas ok' mais le mail est quand même envoyé.
    Avec la modification qu'on vient de faire, l'email ne sera pas envoyé si la condition n'est pas vraie.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Re bonjour.

    Pour ta première question, à vrai dire, je n'en suis pas sur mais il me semble que oui. Etant donné que j'ai fait un paquet de test, je me suis perdu en supprimant les mails.

    Pour le code, je ne suis pas certain de savoir comment l'intégrer réellement. Il me semble que le plus juste ce serait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    if (isset($_POST['envoi']))
    	{
     
    		/* les 4 premières variables $nom,$email,$objet,$message sont obligatoires, par-contre le $telephone il peut être soit vide, soit pas vide ET Valide, donc tu dois définir $telIsValide comme ça:*/
    		$telIsValide=( preg_match("#^[\d]{10}+$#", $telephone)==1 && !empty($telephone) ) || empty($telephone) ;
     
    		if ( !empty($nom) && !empty($email) && !empty($objet)  && !empty($message) && $telIsValide ) //$telIsValide retourne soit true soit false ici.
    		{
    			if(!empty($telephone)){//on ajoute le numéro de tel dans $message s'il n'est pas vide.
    			$message.=", Téléphone :".$telephone;
    		}
     
    		if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
    		{
    			// les 4 variables sont remplies, on génère puis envoie le mail
    			$headers  = 'From:'.$nom.' <'.$email.'>' . "\r\n";
    			//$headers .= 'Reply-To: '.$email. "\r\n" ;
    			//$headers .= 'X-Mailer:PHP/'.phpversion();
    [...]
    			// une des 3 variables (ou plus) est vide ...
    			echo '<p>'.$message_formulaire_invalide.'</p>';
    			$err_formulaire = true;
    		};
    	}; // fin du if (!isset($_POST['envoi']))
    Mais quand je test, j'ai une page blanche avec l'erreur :

    Parse error: syntax error, unexpected end of file in /storage/ssd3/630/11396630/public_html/contact2.php on line 212
    La ligne 212 correspondant à la fermeture de la balise HTML.

    Pourtant, il me semble que j'ouvre et que je ferme bien mes accolades. De plus, dans le code que tu m'as fournit, tu termines par deux accolades mais je ne vois pas où les placer.

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Salut,
    Il faut fermer la condition if de la ligne 9 de ton dernier message, puis à quoi correspond la ligne 19 ?
    Le code de la deuxième condition doit être dans la première, parce que on est déjà dans la condition !empty($nom) && !empty($email) && !empty($objet) && !empty($message) && $telIsValide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if ( !empty($nom) && !empty($email) && !empty($objet)  && !empty($message) && $telIsValide ) //$telIsValide retourne soit true soit false ici.
    		{
    			if(!empty($telephone)){//on ajoute le numéro de tel dans $message s'il n'est pas vide.
    			       $message.=", Téléphone :".$telephone;
                            }//elle manque une fermeture de if( !empty($telephone) ) ici 
     
                             // les 4 variables sont remplies, on génère puis envoie le mail
    			$headers  = 'From:'.$nom.' <'.$email.'>' . "\r\n";
    		}
              else {
    			echo '<p>'.$message_formulaire_invalide.'</p>';
    			$err_formulaire = true;
              }

  7. #7
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Salut,

    En général, les erreurs unexpected end of file signifie qu'il manque une accolade fermante quelque part.


    Par contre, je reviens sur la ligne qui a été modifiée :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
    Elle est correcte et ne doit pas être simplifiée vu que if($num_emails>0) et la ligne plus haut ne vérifient pas la même chose.
    Dans le premier cas (longue condition) ça vérifie si TOUS les emails ont été envoyés, alors que dans le second, ça ne vérifie que si au moins un email a été envoyé.

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    alors que dans le second, ça ne vérifie que si au moins un email a été envoyé.
    On sait que $copie=="oui" dans le début du script et sa valeur n'a pas été changée, donc on élimine ($copie == 'non') && ($num_emails == 1) n'est ce pas ?

    Sinon si on veut vérifier que les DEUX EMAIL ont été bien envoyés, on peut mettre if( $num_emails == 2){.....}

  9. #9
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    My bad, je pensais qu'il y avait une checkbox "M'envoyer une copie de l'email" dans le formulaire et que le "oui" dans le PHP n'était là que pour débugger ^^
    Mais effectivement, en vérifiant l'HTML il n'y a pas de checkbox

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Re bonjour

    Tout d'abord pour la copie envoyé au visiteur, ça fonctionnait depuis le début. Je n'ai juste pas songé à aller voir dans le dossier spam. C'est vraiment bête.

    Pour le code, J'ai mixés le tiens et celui que j'avais car en remplaçant tel quel, je n'avais aucune erreur mais je ne recevais aucun mail. Je suppose que c'était voulu pour que je réfléchisse un minimum et ça été le cas. J'ai ajouté à ton code les lignes manquantes concernant le remplacement des caractères spéciaux, l'envoi du mail , ... Et là, tout fonctionne à merveille. Aucune erreur, je reçois bien le mail ainsi que sa copie et le numéro de téléphone est bel et bien présent.

    Juste le petit détail, c'est que le numéro fait directement suite au message. Je souhaite l'avoir plutôt une ou deux lignes plus bas. J'ai tenté en faisant comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message.=", <br /><br />Téléphone :".$telephone;
    Mais les <br /> ne sont pas prit en compte.

    Une fois ceci réglé, je vais tenter de voir et comprendre un autre point. Celui d'avoir un message d'erreur (ex : champs vide ou mal inscrit) à côté des champs, en infobulle ou bien les champs entouré de rouge. Je vais essayé de trouver des scripts de formulaire et analyser leur code.

    Ps : petite question pour mon information personnelle.

    Dans ton code, tu termines par un "}" alors que dans le mien, c'est "};". Est-ce que le point virgule a une importance ?

    Edit : c'est bon, j'ai trouvé pour le retour à la ligne. Après avoir recherché, j'ai fait comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message.= ",\n Téléphone :".$telephone;

  11. #11
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Citation Envoyé par Xhander Voir le message
    Je n'ai juste pas songé à aller voir dans le dossier spam.
    L'email est enregistré dans le dossier spam parce que peut être que le contenu de la variable $message n'est pas au bon format, essaies de construire une page html 5 valide :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $html="<!DOCTYPE html>
    <head><meta charset='UTF-8' /><title>Titre de la page</title></head>
    <body>".$message."</body>
    </html>";
    Puis remplace $message par $html dans la fonction mail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (mail($email_destinataire, $objet, $html, $headers))
    Citation Envoyé par Xhander Voir le message
    Dans ton code, tu termines par un "}" alors que dans le mien, c'est "};". Est-ce que le point virgule a une importance ?
    Non, aucune importance et tu peux le supprimer.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Désolé de répondre un peu tard.

    Voilà, tout fonctionne à merveille. Merci beaucoup pour l'aide apporté =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur d'ajout de champs dans un formulaire de contact
    Par khaled_prg dans le forum Langage
    Réponses: 2
    Dernier message: 16/02/2012, 00h06
  2. Ajout dynamique de champ dans un formulaire
    Par gendalf37400 dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 06/06/2007, 15h11
  3. formulaire : mise en forme champ numérique
    Par Soatiana dans le forum IHM
    Réponses: 10
    Dernier message: 19/02/2007, 16h52
  4. ajout d'un champs input text dans un formulaire
    Par korrigann dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/04/2006, 15h45
  5. Ajout dynamique de champs de type file dans un formulaire !
    Par stitch dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2005, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo