[RESOLU] Faire apparaître dans un formulaire de contact par mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Faire apparaître dans un formulaire de contact par mail

Re: [RESOLU] Faire apparaître dans un formulaire de contact par mail

par Spols » 08 mai 2019, 14:45

exactement

Re: Faire apparaître dans un formulaire de contact par mail

par wagscd » 08 mai 2019, 12:04

Merci Spols, ça fonctionne.

Donc si je résume le principe.

1 - Faire un var_dump pour savoir à quoi on a affaire comme données.
2 - En fonction, (ici chaines de caractère), adapter le code.

Merci, vais pouvoir peaufiner mon mail ;)

Re: Faire apparaître dans un formulaire de contact par mail

par Spols » 08 mai 2019, 11:44

parfait ceci indique que $paieannuel et paiemensuel ne sont pas des booléen mais des chaines de caractère. sans doute du à ton traitement javascript.
<br>";
      if ($paiemensuel == 'true') $body .= " <li>Paiement mensuel</li>";
      elseif ($paieannuel == 'true') $body .= "	<li>Paiement annuel</li>";

    $body .= "
      
      <li>Paiement mensuel $paiemensuel </li>
      <li>Paiement annuel $paieannuel </li>
ce code ci devrait mieux fonctionner. je vérifie la valeur des variable en les comparant à la chaine 'true' plutot que de les considéré comme des booléens

Re: Faire apparaître dans un formulaire de contact par mail

par wagscd » 08 mai 2019, 10:59

Bonjour Spols,

Merci pour ton aide.

Variables dans le PHP

Code : Tout sélectionner

$paiemensuel = $_POST["paiemensuel"]; $paieannuel = $_POST["paieannuel"];
J'ai également ceci en JS

Code : Tout sélectionner

var paiemensuel = document.getElementById('paiemensuel').checked; var paieannuel = document.getElementById('paieannuel').checked;
Le contenu du mail

Paiement mensuel
Paiement mensuel false
Paiement annuel true

ou

Paiement mensuel
Paiement mensuel true
Paiement annuel false


Concernant var_dump (désolé suis loin de tout comprendre), j'ai cru comprendre en lisant le manuel mais comment je l'applique.

J'ajoute dans mon code existant ?

Code : Tout sélectionner

var_dump($paieannuel, $paiemensuel);
Merci


PS : Je viens d'essayer en ajouter cette ligne (soyons fou ;) )

J'ai ceci comme message dans la page php qui confirme l'envoi du mail

string(5) "false" string(4) "true"

Re: Faire apparaître dans un formulaire de contact par mail

par Spols » 08 mai 2019, 08:18

montre nous plus de code, comment tes variables sont créer, affiche les avec var_dump pour être sur de leur contenu et de leur type. et montre nous aussi le contenu du mail correspondant au code.

Re: Faire apparaître dans un formulaire de contact par mail

par wagscd » 07 mai 2019, 18:08

Test effectué mais toujours pas le bon résultat

Voici le code

Code : Tout sélectionner

<br>"; if ($paiemensuel) $body .= " <li>Paiement mensuel</li>"; elseif ($paieannuel) $body .= " <li>Paiement annuel</li>"; $body .= " <li>Paiement mensuel $paiemensuel </li> <li>Paiement annuel $paieannuel </li>
J'ai laissé dan la suite du code les 2 paiements pour voir le False et True pour bien vérifier mais ça fonctionne pas.

Que ce soit True ou False, c'est toujours Paiement mensuel qui s'affiche dans le mail.

Merci.

Re: Faire apparaître dans un formulaire de contact par mail

par wagscd » 07 mai 2019, 16:37

Merci Spols

Je teste tout ça d'ici ce soir ou demain.
La boucle, je vais étudier la chose ;)

Re: Faire apparaître dans un formulaire de contact par mail

par Spols » 07 mai 2019, 15:56

tu peux mettre autant de elseif qu'il te faut. mais si tu en as beaucoup, le mieux est encore de mettre le tout dans une boucle.

Re: Faire apparaître dans un formulaire de contact par mail

par wagscd » 07 mai 2019, 15:51

Re bonjour,

Je te remercie pour le code et surtout pour les explications qui me permettent de comprendre (et aussi de me rendre compte qu'il y a des choses que je retiens pas comme le fameux .=

Je vais tester cela tout à l'heure.

Le problème est que mon exemple est bien puisque j'en ai besoin ;) mais j'ai aussi une liste de plusieurs "options" dans ce formulaire.
Et qui dit options dit que je peux en avoir 0, 1 ou plusieurs, dont plusieurs lignes à afficher.

Est ce que je peux ajouter plusieurs elseif ?

Code : Tout sélectionner

<li>option 1</li> <li>option 2</li> <li>option 3</li> <li>option 4</li>

Code : Tout sélectionner

if ($option1) $body .= " <li>Option1</li>"; elseif ($opton2) $body .= " <li>Option2</li>"; elseif ($opton3) $body .= " <li>Option3</li>"; elseif ($opton4) $body .= " <li>Option4</li>"; $body .= "[RESTE DU TEXTE SI IL Y A]";
J'ai pas testé, suis pas devant mon pc "travail" ;)

Merci

Re: Faire apparaître dans un formulaire de contact par mail

par Spols » 07 mai 2019, 15:43

$body = 	"
		<H2>Formulaire de contact</H2>
		<br>
		<p>Texte</p>
";
if ($paiemensuel) $body .= "                       <li>Paiement mensuel</li>";
elseif ($paieannuel) $body .= "			<li>Paiement annuel</li>";
$body .= "[RESTE DU TEXTE SI IL Y A]";
en utilisant .= plutot que = dès la deuxième fois je dis à php de rajouter du texte à la valeur actuelle de la variable.
comme si j'avais mis $body = $body . "texte en plus";
cela me permet de faire 2 conditions if et elseif qui ajouteront le texte idoine si la valeur correspond;

si besoin, tu peux continuer a àjouter du texte en utilisant toujours .=

la toute première fois que tu utilise une variable, il ne faut pas utiliser le ;= au risque d'avoir une erreur de type NOTICE elle ne bloquera pas le code mais ce n'est jamais beau d'avoir une erreur.

PS les balises LI doivent être encadré par une balise UL et n'a de sens que si il y en a plusieurs sinon utilise une balise P

Re: Faire apparaître dans un formulaire de contact par mail

par wagscd » 07 mai 2019, 14:19

Test effectué sans succès.

Un exemple du code php

Code : Tout sélectionner

$body = " <H2>Formulaire de contact</H2> <br> <p>Texte</p> <li>Paiement mensuel $paiemensuel </li> <li>Paiement annuel $paieannuel </li>
Je voudrais que l'un ou d'autre s'affiche en fonction de la case cochée ou non dans le formulaire.

Merci

Re: Faire apparaître dans un formulaire de contact par mail

par wagscd » 07 mai 2019, 13:56

Bonjour Spols

Merci pour cette explication, je vais tester.

Re: Faire apparaître dans un formulaire de contact par mail

par Spols » 07 mai 2019, 12:00

quelque chose comme ceci
<?php
if ($caseàcocher) {
echo '<p>texte '. 'texte_si_True' . '</p>';
}

mais avec si peu de code difficile d'être plus précis.

Faire apparaître dans un formulaire de contact par mail

par wagscd » 07 mai 2019, 11:42

Bonjour à toutes et à tous,

Suite à un précédent sujet et grâce à votre aide, j'ai pu avancer sur la mise en page de mon formulaire de contact envoyé par mail.

Dans ce formulaire, il y a des cases à cocher qui sont traitées et qui affichent False ou True.

2 questions....

- Est il possible de mettre autre chose que False ou True ?
- Est il possible que lorsque c'est False, rien ne s'affiche, ni la valeur $caseàcocher ni le texte qui précède

Mon code est basique dans le traitement du formulaire d'envoi du mail

Code : Tout sélectionner

<p>Texte $caseàcocher
Le code du fichier .JS

Code : Tout sélectionner

var caseàcocher= document.getElementById('caseàcocher').checked;

Merci d'avance pour vos aides et pistes.

Bonne journée