[RESOLU] formulaire de contact

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] formulaire de contact

Re: formulaire de contact

par cyberpunk » 19 août 2014, 23:48

merci ;)

Re: formulaire de contact

par Ryle » 18 août 2014, 17:00

Le print_r() n'éclaircira pas grand chose, les données du formulaire sont bien envoyées en post et devraient donc bien arriver dans $_POST. Le problème est à priori au niveau de la constitution du mail.

Actuellement le corps du message envoyé ne contient que la variable $texte :
$message = htmlentities("$texte");
Si tu veux faire apparaître les nom, prénom et autre informations, il te faut compléter la variable $message en conséquence.. Par exemple :
$prenom = $_POST['prenom']; // nota : il faudrait vérifier que $_POST['prenom'] existe bien avant de l'utiliser (isSet, empty, ...)
$nom = $_POST['nom'];
...

$message = '<p>Vous avez reçu une demande de ' . $prenom . ' ' . $nom .'</p>'; 
$message.= '<p>Motif : ' . $motif . '</p>';
$message.= '<p>Message : ' . htmlentities($texte) . '</p>';

Re: formulaire de contact

par sirakawa » 18 août 2014, 14:28

<?PHP
print_r($_POST); die();//devrait tout éclaircir
$destinataire = '[email protected]';
$sujet = $_POST['sujet'];
$texte = $_POST['texte'];

?>

Re: formulaire de contact

par cyberpunk » 18 août 2014, 13:40

bonjour en effet il me semblé bien qu'il manquait ces variable mais comme ça fait super longtemps que j'ai plus utilisé du php... ^^

je reçois bien le contenu du message et l'objet mais quand je met pour avoir le nom, prenom et email de la personne rien! ?

Re: formulaire de contact

par ynx » 18 août 2014, 12:30

Salut,

Ton code est vieux et il devait utiliser register_globals pour initialiser les variables php. Pour des raisons de sécurité, cette fonctionnalité a été supprimée depuis php 5.3.

Pour corriger ton code, tu dois donc initialiser tes variables au début de ton code php :
<?php
$destinataire = '[email protected]';
$sujet = $_POST['sujet'];
$texte = $_POST['texte'];
Bonne journée

formulaire de contact

par cyberpunk » 18 août 2014, 00:50

Bonsoir,

Je crée un site et sur ce site j'ai une page avec un formulaire de contact. j'ai donc trouvé un script php avec du code à mettre sur la page html et une page php.
Le soucis est que dans le mail que je reçois, il n'y a aucun information qui s'affiche malgré le remplissage de celle-ci (nom, prénom...).

voici le code:

sur la page html

Code : Tout sélectionner

<script type="text/javascript" language="Javascript" > <!-- function verification() { if(document.formulaire.nom.value == "") { alert("Votre nom est obligatoire !"); document.formulaire.nom.focus(); return false; } else if(document.formulaire.prenom.value == "") { alert("Votre prénom est obligatoire !"); document.formulaire.prenom.focus(); return false; } else if(document.formulaire.email.value == "") { alert("Votre adresse email est obligatoire !"); document.formulaire.email.focus(); return false; } else if(document.formulaire.email.value.indexOf('@') == -1) { alert("Votre adresse email n'est pas valide !"); document.formulaire.email.focus(); return false; } else sujetoption = -1 for (i=0; i<formulaire.sujet.length; i++) { if(document.formulaire.sujet[i].checked){ sujetoption = i } } if (sujetoption == -1) { alert("Vous devez choisir le sujet de votre message !"); return false; } else if(document.formulaire.texte.value == "") { alert("Vous ne pouvez envoyer un message vide !"); document.formulaire.texte.focus(); return false; } return true } //--> </script>

Code : Tout sélectionner

<form name="formulaire" action="traitement_email.php" method="post" onSubmit="return verification()"> <table width="550"> <tr><td width="200"><p class="text_contenu">Votre nom : </p></td><td><input name='nom' type='text' class='input_contact'></td></tr> <tr><td><p class="text_contenu">Votre pr&eacute;nom : </p></td><td><input name='prenom' type='text' class='input_contact'></td></tr> <tr><td><p class="text_contenu">Votre email</p></td><td><input name='email' type='text' class='input_contact'></td></tr> <tr><td><p class="text_contenu">Le motif de <br />votre message</p></td><td><p class="text_contenu"><input name='sujet' type='radio' value='renseignements'>Renseignements<br /> <input name='sujet' type='radio' value='bugs sur le site'> Bugs sur le site<br /> <input name='sujet' type='radio' value='partenariat et publicité'>Partenariat / publicité<br /> <input name='sujet' type='radio' value='autres'>Autres ...</p></td></tr> <tr><td><p class="text_contenu">Votre message</p></td><td><textarea name='texte' cols='40' rows='10' class='input_contact'></textarea></td></tr> <tr><td height="50">&nbsp;</td><td> <input name='soumettre' type='image' src="images/button_submit.png" height="26" width="100"></td></tr> </table> </form>


Et dans la page php:

Code : Tout sélectionner

<? $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "From: dggdgdg <[email protected]>\n"; $headers .= "Cc: $adresse\n"; $headers .= "Bcc: [email protected]\n"; $message = htmlentities("$texte"); // On envoi l'email if ( mail($destinataire, $sujet, $message, $headers) ) echo "<br/><br/><center><h2>Nous avons bien reçu votre message, merci.</h2></center>"; else echo "Un probleme est survenu lors de l'envoir de votre message !"; ?>