Formulaire d'envoi d'email

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 : Formulaire d'envoi d'email

Re: Formulaire d'envoi d'email

par sirakawa » 16 nov. 2015, 10:12

As-tu fait afficher le $_POSt:

<?PHP
//ajoute tout au début:
print_r(_POST); die();
Si ça affiche correctement, retire ce que tu viens d'ajouter.
Extrais-tu le contenu du $_POST?
au minimum
extract($_POST);
au mieux, une batterie de tests sur les champs (required n'est pas reconnu partout)
Enfin, fais-tu afficher le texte du message avant de l'envoyer?

Re: Formulaire d'envoi d'email

par silverphoenix » 15 nov. 2015, 19:56

Bonsoir sirakawa,

Merci pour le temps que tu as passé à vérifier mon codage, et j'avoue que ces petits détails m'avaient échappés (bouhhhhh je suis nulllllll lol)

Je peux te dire que la mise en page est tout de suite plus agréable comme tu me la propose avec le fieldset.

J'ai envoyé le tout sur le server hébergeant mon site et fait un test, je n'ai qu'un seul petit souci, lorsque je reçois l'e-mail, il se présente comme ceci :

De [email protected] 18:40 (Il y a 13 minutes)
À moi
Array
(
)

Aurais-tu une idée d'où cela pourrait venir?

Merci encore de ton aide :)

Re: Formulaire d'envoi d'email

par sirakawa » 15 nov. 2015, 18:58

Bjr,
J'ai rapproché les deux lignes qui font problème:
<label>Nom *</label> <br/><input name="nom" type="text" required size="25" maxlength="25"/> <br/>
<TEXTAREA name="nom" rows=10 cols=50 placeholder="ex. : échappement troué"></TEXTAREA><br/>
Au passage, les balises Hache Teuf Teuf Mords La sont en minuscules et on met un espace avant le /> final

Dans le select, le required est un attribut de select et non pas de label, et choisissez n'est pas une option:
<label for="civilite" required> Choisissez une civilité *</label> <br/>
<select name="civilite" id="civilite">
<option value="empty">Choisissez</option>
<option value="monsieur">Monsieur</option>
<option value="madame">Madame</option>
<option value="mademoiselle">Mademoiselle</option>
</select><br/>
deviendrait
:
<label for="civilite" > Choisissez une civilité *</label> <br />
<select required = "required" name="civilite" id="civilite">
<option value="monsieur">Monsieur</option>
<option value="madame">Madame</option>
<option value="mademoiselle">Mademoiselle</option>
</select><br />

Voici adapté à mon goût:
ajout de fieldset
suppression de quelques <br />
modification de la longueur max de l'eamil conformément à la norme RFC 3696
<form method="post"  name="formulaire" enctype="text/plain" action="traitement.php">
<p>Partout, l'astérisque indique un champ obligatoire</p>
<fieldset>
<legend>Qui êtes-vous ?</legend>
	<label for="civilite" > Choisissez une civilité *</label> 
	<select  required = "required" name="civilite" id="civilite">
		<option value="monsieur">Monsieur</option>
		<option value="madame">Madame</option>
		<option value="mademoiselle">Mademoiselle</option>
		
	</select><br />
	<label>Prénom</label> <input name="prenom" type="text" size="25" maxlength="25" /> 
	<label>Nom *</label> <input name="nom" type="text" required size="25" maxlength="25"/> <br/>
	<label>E-mail *</label> <input name="email" type="text" required = "required" size="50" maxlength="254" /> <br />
	<label>Téléphone</label> <input name="telephone" type="text" size="25" maxlength="25" /> <br />
</fieldset>
<fieldset>
	<legend>Votre véhicule</legend>
	<label>Marque *</label> <input name="marque" type="text" required = "required" size="25" maxlength="25" /> 
	<label>Modèle *</label> <input name="modele" type="text" required = "required" size="25" maxlength="25" /> <br>
	<label>Cylindrée *</label> <input name="cylindree" type="text" required = "required" size="25" maxlength="25" placeholder="ex. : 1.6 TDI"/><br/>
	<label>Kw *</label> <input name="kw" type="text" required = "required" size="4" maxlength="4" placeholder="ex. : 59"/>
	</label> Puissance<input name="puissance" type="text" size="4" maxlength="4" placeholder="ex. : 80"/> cv<br>
	<label>N° de châssis </label> <input name="chassis" type="text" size="30" placeholder="Si vous le pouvez"/> <br>
	<label>Kilométrage *</label> <input name="kilometrage" type="text" required = "required" size="8" maxlength="8"/> <br>
</fieldset>
<fieldset>
	<legend>Cochez les réparations que vous jugez nécessaires * :</legend>
	<input type="checkbox" name="entretien" id="entretien" /> <label for="entretien">Entretien</label><br/>
	<input type="checkbox" name="disques1" id="disques1" /> <label for="disques1">Disques de freins avant</label><br/>
	<input type="checkbox" name="plaquettes1" id="plaquettes1" /> <label for="disques1">Plaquettes de freins avant</label><br/>
	<input type="checkbox" name="disques2" id="disques2" /> <label for="disques2">Disques de freins arrière</label><br/>
	<input type="checkbox" name="plaquettes2" id="plaquettes2" /> <label for="plaquettes2">Plaquettes de freins arrière</label><br/>
	<input type="checkbox" name="tambours" id="tambours" /> <label for="tambours">Tambours de freins</label><br/>
	<input type="checkbox" name="balais1" id="balais1" /> <label for="balais1">Balais d'essuie-glace avant</label><br/>
	<input type="checkbox" name="balais2" id="balais2" /> <label for="balais2">Balais d'essuie-glace arrière</label><br/>
	<input type="checkbox" name="amortisseurs1" id="amortisseurs1" /> <label for="amortisseurs1">Amortisseurs avant</label><br/>
	<input type="checkbox" name="amortisseurs2" id="amortisseurs2" /> <label for="amortisseur2">Amortisseurs arrière</label><br/>
	<label for="libre"> Si vous avez une demande spécifique, merci de compléter cette zone de texte (500 caractères maximum).</label><br/>
	<textarea name="optionnel" rows="5" cols="100" placeholder="ex. : échappement troué"></textarea><br/>
</fieldset>
<input type="submit" value="Envoyer" />

Re: Formulaire d'envoi d'email

par silverphoenix » 14 nov. 2015, 21:40

Merci encore à toi Or1.

J'ai pu tester aussi bien en local qu'en ligne, celà fonctionne à 99%

Array
(
[civilite] => madame
[nom] => Tremblement au ralenti
[prenom] => alice
[email] => [email protected]
[telephone] => 0123456789
[marque] => Seat
[modele] => Ibiza
[cylindree] => 1.4 TDI
[kw] => 59
[puissance] => 80
[chassis] =>
[kilometrage] => 149850
[entretien] => on
[disques1] => on
[plaquettes1] => on
[tambours] => on
)

Comme tu peux le constater, le nom de la personne n'apparaît pas et à la place c'est la zone de texte libre qui s'y affiche. Aurais-tu une idée d'où cela pourrait venir? Je vais vérifier au niveau de tout mon codage voir si je ne me serais pas trompé quelque part dans mon fichier html, on ne sait jamais :priere:

Afin de faire un retour sur une page spécifique, j'ai rajouté une ligne : Header("Location: http://www.monsite.com");

Re: Formulaire d'envoi d'email

par silverphoenix » 14 nov. 2015, 20:50

Merci Or1 pour ta réponse, je vais tester ta solution, en local et directement sur le site pour voir :)

Re: Formulaire d'envoi d'email

par or 1 » 14 nov. 2015, 19:06

dans traitement.php
<?php mail("[email protected]", "formulaire du site", print_r($_POST, true)); ?>
plutôt à tester sur le vrai site car il est peu probable que la fonction mail fonctionne en local.

Formulaire d'envoi d'email

par silverphoenix » 14 nov. 2015, 18:13

Bonsoir à tous et toutes,

Avant tout, je tiens à présenter mes plus sincères condoléances aux familles, proches, amis des victimes de cette barbarie à Paris, toutes nos pensées sont pour nos amis français.

Je voudrais vous demander votre aide car je suis complètement noyé et n'arrive à rien, depuis ce matin j'ai tenté "36.000" possibilités, mais je ne parviens pas à rendre mon formulaire d'envoi opérationnel :

- soit j'obtiens des erreurs de syntaxe,
- soit je n'ai aucune erreur mais le formulaire ne s'envoie pas,
- bref je suis dans la misère.

J'ai déjà créé plusieurs sites mais le php a raison de moi et de mon pauvre petit cerveau.

Etant en train de lancer mon activité dans le secteur mécanique, je me suis lancé comme défi de créer la première version de mon site par moi-même, jusque maintenant je n'ai rencontré aucun souci.

Hier, j'ai donc créé ma page html dans laquelle j'ai ajouté un formulaire de demande de devis, voici le code du formulaire proprement dit (désolé d'avance pour la longueur) :

<form method="post" enctype="text/plain" action="traitement.php">
<label for="civilite" required>Civilité *</label> <br/>
<select name="civilite" id="civilite">
<option value="empty">Choisissez</option>
<option value="monsieur">Monsieur</option>
<option value="madame">Madame</option>
<option value="mademoiselle">Mademoiselle</option>
</select><br/>
<label>Nom *</label> <br/><input name="nom" type="text" required size="25" maxlength="25"/> <br/>
<label>Prénom</label> <br/><input name="prenom" type="text" size="25" maxlength="25" /> <br>
<label>E-mail *</label> <br/><input name="email" type="text" required size="50" maxlength="50" /> <br>
<label>Téléphone</label> <br/><input name="telephone" type="text" size="25" maxlength="25" /> <br>
<label>Marque *</label> <br/><input name="marque" type="text" required size="25" maxlength="25" /> <br>
<label>Modèle *</label> <br/><input name="modele" type="text" required size="25" maxlength="25" /> <br>
<label>Cylindrée *</label> <br/><input name="cylindree" type="text" required size="25" maxlength="25" placeholder="ex. : 1.6 TDI"/><br/>
<label>Kw *</label> <input name="kw" type="text" required size="4" maxlength="4" placeholder="ex. : 59"/> <label> <br/>
Puissance</label> <input name="puissance" type="text" size="4" maxlength="4" placeholder="ex. : 80"/> cv<br>
<label>N° de châssis </label> <br/><input name="chassis" type="text" size="30" placeholder="Si vous le pouvez"/> <br>
<label>Kilométrage *</label> <br/><input name="kilometrage" type="text" required size="8" maxlength="8"/> <br>
Cochez les réparations que vous jugez nécessaires * :<br/>
<input type="checkbox" name="entretien" id="entretien" /> <label for="entretien">Entretien</label><br/>
<input type="checkbox" name="disques1" id="disques1" /> <label for="disques1">Disques de freins avant</label><br/>
<input type="checkbox" name="plaquettes1" id="plaquettes1" /> <label for="disques1">Plaquettes de freins avant</label><br/>
<input type="checkbox" name="disques2" id="disques2" /> <label for="disques2">Disques de freins arrière</label><br/>
<input type="checkbox" name="plaquettes2" id="plaquettes2" /> <label for="plaquettes2">Plaquettes de freins arrière</label><br/>
<input type="checkbox" name="tambours" id="tambours" /> <label for="tambours">Tambours de freins</label><br/>
<input type="checkbox" name="balais1" id="balais1" /> <label for="balais1">Balais d'essuie-glace avant</label><br/>
<input type="checkbox" name="balais2" id="balais2" /> <label for="balais2">Balais d'essuie-glace arrière</label><br/>
<input type="checkbox" name="amortisseurs1" id="amortisseurs1" /> <label for="amortisseurs1">Amortisseurs avant</label><br/>
<input type="checkbox" name="amortisseurs2" id="amortisseurs2" /> <label for="amortisseur2">Amortisseurs arrière</label><br/>
<label for="libre"> Si vous avez une demande spécifique, merci de compléter cette zone de texte (500 caractères maximum).</label><br/>
<TEXTAREA name="nom" rows=10 cols=50 placeholder="ex. : échappement troué"></TEXTAREA><br/>

<input type="submit" value="Envoyer" />

Quelqu'un parmi-vous pourrait-il m'aider à réaliser la partie php afin que je puisse enfin faire fonctionner cela? J'ai tenté avec bon nombre d'explications provenant de divers sites et forum avant de découvrir ce forum qui, j'espère pourra me venir en aide.

Pour information, afin de faire les tests, je travaille avec WAMP en server local.

Merci d'avance pour votre aide.