???? FORMULAIRE MAIL VIDE ????

???? FORMULAIRE MAIL VIDE ???? - PHP - Programmation

Marsh Posté le 16-07-2012 à 17:44:42    

Bonjour,
 
je viens de faire un formulaire.
Tout fonctionne bien ( ! ) mais quand je reçois l'e-mail d'un visiteur il est vide ???
Cela vient-il de mon hébergeur ?? ( configuration Php... )
 
Voici le code PHP et HTML ci-dessous.
 
PHP :
 
<?
$adresse="monemail@monemail.fr";
$from=" $nom $prenom <$email>";
mail($adresse,$sujet,$texte,$from);
if (mail($adresse,$sujet,$texte,$from))
echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir &agrave; l'accueil</a></center>" );
else
echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>" );
?>
 
 
HTML :
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                     "http://www.w3.org/TR/REC-html40/loose.dtd">
       
<html>
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Mon formulaire</title>
 
<script type="text/javascript" language="Javascript" >
<!--
function verification()
{
if(document.formulaire.nom.value == "" )  {
  alert("Veuillez entrer votre nom svp" );
  document.formulaire.nom.focus();
  return false;
 }
  else
if(document.formulaire.prenom.value == "" ) {
  alert("Veuillez entrer votre prenom svp" );
  document.formulaire.prenom.focus();
  return false;
 }
  else
if(document.formulaire.email.value == "" ) {
  alert("Veuillez entrer votre adresse electronique svp" );
  document.formulaire.email.focus();
  return false;
 }
 else
if(document.formulaire.email.value.indexOf('@') == -1) {
  alert("Ce n'est pas une adresse electronique, verifiez la svp" );
  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("Veuillez choisir le sujet de votre message svp" );
  return false;
 }
 else
if(document.formulaire.texte.value == "" ) {
  alert("Veuillez entrer le texte de votre message svp" );
  document.formulaire.texte.focus();
  return false;
 }
return true
}
//-->
</script>
 
</head>
 
<body>
<form name="formulaire" action="traitement.php" method="post" onSubmit="return verification()">
<table>
<th>Formulaire de contact</th>
<tr><td>Votre nom : </td><td><input name='nom' type='text' size='50'></td></tr>
<tr><td>Votre pr&eacute;nom : </td><td><input name='prenom' type='text' size='50'></td></tr>
<tr><td>Votre email</td><td><input name='email' type='text' size='50'></td></tr>
<tr><td>Le motif de votre message</td><td><input name='sujet' type='radio' value='renseignement'>Renseignement<br>
<input name='sujet' type='radio' value='probleme technique'> Probleme technique<br>
<input name='sujet' type='radio' value='partenariat'>Partenariat</td></tr>
<tr><td>Votre message</td><td><textarea name='texte' cols='50' rows='20'></textarea></td></tr>
<tr><td><input name='annuler' type='reset' value='Annuler'></td><td>
<input name='soumettre' type='submit' value='Envoyer'></td></tr>
</table>
</form>
</body>
</html>
 
 
MERCI D'AVANCE POUR VOS RÉPONSES !!
 
 
 
<config>Windows 7 / Firefox 13.0.1</config>

Reply

Marsh Posté le 16-07-2012 à 17:44:42   

Reply

Marsh Posté le 16-07-2012 à 18:00:51    

Deja quand tu fais cela

 

mail($adresse,$sujet,$texte,$from);
if (mail($adresse,$sujet,$texte,$from))

 

tu executes 2 fois la fonction mail.

 

Et un petit echo '$texte' juste avant pour vérifie que ta variable est bien renseigné ca peut aider


Message édité par KLeMiX le 16-07-2012 à 18:01:05

---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
Reply

Marsh Posté le 16-07-2012 à 18:17:14    

Reply

Marsh Posté le 16-07-2012 à 18:28:53    

Merci pour ta réponse.
 
Excuses moi je débute.
Donc si je comprends je mets donc :
<?
$adresse="monemail@monemail.fr";
$from=" $nom $prenom <$email>";
echo '$texte';
mail($adresse,$sujet,$texte,$from);
if (mail($adresse,$sujet,$texte,$from))
echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir &agrave; l'accueil</a></center>" );
else
echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>" );
?>
 

Reply

Marsh Posté le 17-07-2012 à 10:14:13    

Oui mais en teste, et tu regardes si le texte de ton mail s'affiche
 
Et je repete quand tu fais :
 
mail($adresse,$sujet,$texte,$from);  
if (mail($adresse,$sujet,$texte,$from))  
 
 
Tu executes 2 fois ta fonction mail


---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
Reply

Marsh Posté le 17-07-2012 à 10:46:38    

J'ai fait ce test mais mon e-mail est toujours vide....
 
J'ai aussi essayé d'enlever "mail($adresse,$sujet,$texte,$from);" ( je sais, je suis un peu longue à la détente ! ), rien non plus.
 
Voilà le détail de mon e-mail vide :  
 
 Return-Path: <blanche@web.planet-work.com>
Received: from mwinf8502 (mwinf8502)
 by mwinb7404 (SMTP Server) with LMTP; Tue, 17 Jul 2012 10:45:09 +0200
X-Sieve: Server Sieve 2.2
Received: from castor.planet-work.net ([79.99.164.41])
 by mwinf8502 with ME
 id bLl91j00Q0tuSSP01Ll96A; Tue, 17 Jul 2012 10:45:09 +0200
X-bcc: blanche-casau@laposte.net
X-ME-bounce-domain: laposte.net
X-ME-engine: default
X-me-spamrating: 58.00
X-me-spamcause: (90)(0000)gggruggvucftvghtrhhoucdtuddrfeegkedrjeekgdefhecutefuodetggcurfhrohhfihhlvgemuceonhhonhgvqeenuceurghilhhouhhtmecugedttdenucfgmhhpthihuchsuhgsjhgvtghtucdluddtmdengfhmphhthicusghougihucdlkedtmd
X-me-spamlevel: not-spam
X-ME-Entity: lpn
Received: from [192.168.3.26] (helo=sulley.pw)
 by castor.planet-work.net with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.72)
 (envelope-from <blanche@web.planet-work.com> )
 id 1Sr3P3-0002Yx-7g
 for blanche-casau@laposte.net; Tue, 17 Jul 2012 10:45:09 +0200
Received: from [127.0.0.1] (helo=web.planet-work.com)
 by sulley.pw with smtp (Exim 4.72)
 (envelope-from <blanche@web.planet-work.com> )
 id 1Sr3P3-0000AF-9t
 for blanche-casau@laposte.net; Tue, 17 Jul 2012 10:45:09 +0200
Received: (nullmailer pid 633 invoked by uid 6676);
 Tue, 17 Jul 2012 08:45:09 -0000
To: blanche-casau@laposte.net
Subject:  
X-PHP-Originating-Script: 6676:traitement.php
   <>
X-Complaints-To: abuse@planet-work.net
X-Abuse-Info: Please be sure to forward a copy of ALL headers
X-Abuse-Info: Otherwise we will be unable to process your complaint properly.
X-Domain: www.antiquites.net
Date: Tue, 17 Jul 2012 10:45:09 +0200
Message-Id: <1342514709.278590.630.nullmailer@web.planet-work.com>
From: <blanche@web.planet-work.com>
 
 
Merci pour ton aide !

Reply

Marsh Posté le 17-07-2012 à 10:55:44    

Le echo $texte; te donne quoi ?


---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
Reply

Marsh Posté le 17-07-2012 à 11:28:45    


Avec "echo $texte;" je reçois encore et toujours un e-mail vide ...  
 
J'ai pensé à autre chose, peut-être cela vient-il de mon hébergeur :
 
-que faut-il comme paramètres Php ?
-ou est-ce au niveau de la réception des mails  
( quand je reçois l'e-mail vide, l'expéditeur vient de mon hébergeur : blanche@web.planet-work.com )
puisqu'il y a traitement Php c'est normal,
mais faut-il que je fasse une modification au niveau mon hébergeur ??
 
 
 

Reply

Marsh Posté le 17-07-2012 à 11:53:58    

Non mais si tu fais un echo $texte et que tu ne vois rien a l'écran c'est que ta variable n'est pas rempli


---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
Reply

Marsh Posté le 17-07-2012 à 12:02:36    

essaies de te faire une page avec juste  ca :

 


  <?php   $to      = 'tomail@tomail.com';
     $subject = 'Test mail';
          $message = '
     <html>
      <head>
       <title>Test mail</title>
      </head>
      <body>
      <p>coucou</p>
      </body>
     </html>
     ';

 

    // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
     $headers  = 'MIME-Version: 1.0' . "\r\n";
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
     $headers .= 'From: tomail@tomail.fr' . "\r\n" .
     'Reply-To: tomail@tomail.fr' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();
     mail($to, $subject, $message, $headers);
?>


Message édité par KLeMiX le 17-07-2012 à 12:03:03

---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
Reply

Marsh Posté le 17-07-2012 à 12:02:36   

Reply

Marsh Posté le 17-07-2012 à 12:20:11    

Rebonjour,
 
en fait je viens d'essayer avec un nouveau formulaire et ça marche !!!!
Celui-là était simplement un peu dépassé.
 
Je te mets ci-dessous mon nouveau formulaire.
 
Merci pour tout et très bonne journée !
 
 
 
HTML :  
 
<form id="contact" method="post" action="traitement.php">
 <fieldset><legend>Vos coordonnées</legend>
  <p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
  <p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p>
 </fieldset>
 
 <fieldset><legend>Votre message :</legend>
  <p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="3" /></p>
  <p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8"></textarea></p>
 </fieldset>
 
 <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>
</form>
 
 
PHP :  
 
<?php
 /*
  ********************************************************************************************
  CONFIGURATION
  ********************************************************************************************
 */
 // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
 $destinataire = 'garnierloic@free.fr';
 
 // copie ? (envoie une copie au visiteur)
 $copie = 'non';
 
 // 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 = trim($text); // delete white spaces after & before text
  if (1 === get_magic_quotes_gpc())
  {
   $stripslashes = create_function('$txt', 'return stripslashes($txt);');
  }
  else
  {
   $stripslashes = create_function('$txt', 'return $txt;');
  }
 
  // magic quotes ?
  $text = $stripslashes($text);
  $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
  $text = nl2br($text);
  return $text;
 };
 
 /*
  * Cette fonction sert à vérifier la syntaxe d'un email
  */
 function IsEmail($email)
 {
  $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
  return (eregi($pattern,$email)) ? true : false;
 };
 
 $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
 
 // si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
 $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
 $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
 $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
 $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
 if (isset($_POST['envoi']))
 {
  // 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 = (IsEmail($email)) ? false : true;
 
  if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
  {
   // les 4 variables sont remplies, on génère puis envoie le mail
   $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
 
   // envoyer une copie au visiteur ?
   if ($copie == 'oui')
   {
    $cible = $destinataire.','.$email;
   }
   else
   {
    $cible = $destinataire;
   };
 
   // Remplacement de certains caractères spéciaux
   $message = html_entity_decode($message);
   $message = str_replace('&#039;',"'",$message);
   $message = str_replace('&#8217;',"'",$message);
   $message = str_replace('<br>','',$message);
   $message = str_replace('<br />','',$message);
 
   // Envoi du mail
   if (mail($cible, $objet, $message, $headers))
   {
    echo '<p>'.$message_envoye.'</p>'."\n";
   }
   else
   {
    echo '<p>'.$message_non_envoye.'</p>'."\n";
   };
  }
  else
  {
   // une des 3 variables (ou plus) est vide ...
   echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
   $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.'">'."\n";
  echo ' <fieldset><legend>Vos coordonnées</legend>'."\n";
  echo '  <p>'."\n";
  echo '   <label for="nom">Nom :</label>'."\n";
  echo '   <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
  echo '  </p>'."\n";
  echo '  <p>'."\n";
  echo '   <label for="email">Email :</label>'."\n";
  echo '   <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
  echo '  </p>'."\n";
  echo ' </fieldset>'."\n";
 
  echo ' <fieldset><legend>Votre message :</legend>'."\n";
  echo '  <p>'."\n";
  echo '   <label for="objet">Objet :</label>'."\n";
  echo '   <input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n";
  echo '  </p>'."\n";
  echo '  <p>'."\n";
  echo '   <label for="message">Message :</label>'."\n";
  echo '   <textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
  echo '  </p>'."\n";
  echo ' </fieldset>'."\n";
 
  echo ' <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
  echo '</form>'."\n";
 };
?>

Reply

Marsh Posté le 20-07-2012 à 12:22:49    

<?
if($_POST['nom']&&$_POST['prenom']&&$_POST['text']){
 
 
 
$adresse="monemail@monemail.fr";
$from=" $nom $prenom <$email>";
 
if (mail($adresse,$sujet,$texte,$from)){
echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir &agrave; l'accueil</a></center>" );}
else
{
echo  "<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>" ;}
 
 
 
}
?>
 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                     "http://www.w3.org/TR/REC-html40/loose.dtd">
       
<html>
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Mon formulaire</title>
 
<script type="text/javascript" language="Javascript" >
<!--
function verification()
{
if(document.formulaire.nom.value == "" )  {
  alert("Veuillez entrer votre nom svp" );
  document.formulaire.nom.focus();
  return false;
 }
  else
if(document.formulaire.prenom.value == "" ) {
  alert("Veuillez entrer votre prenom svp" );
  document.formulaire.prenom.focus();
  return false;
 }
  else
if(document.formulaire.email.value == "" ) {
  alert("Veuillez entrer votre adresse electronique svp" );
  document.formulaire.email.focus();
  return false;
 }
 else
if(document.formulaire.email.value.indexOf('@') == -1) {
  alert("Ce n'est pas une adresse electronique, verifiez la svp" );
  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("Veuillez choisir le sujet de votre message svp" );
  return false;
 }
 else
if(document.formulaire.texte.value == "" ) {
  alert("Veuillez entrer le texte de votre message svp" );
  document.formulaire.texte.focus();
  return false;
 }
return true
}
//-->
</script>
 
</head>
 
<body>
<form name="formulaire" action="traitement.php" method="post" onSubmit="return verification()">
<table>
<th>Formulaire de contact</th>
<tr><td>Votre nom : </td><td><input name='nom' type='text' size='50'></td></tr>
<tr><td>Votre pr&eacute;nom : </td><td><input name='prenom' type='text' size='50'></td></tr>
<tr><td>Votre email</td><td><input name='email' type='text' size='50'></td></tr>
<tr><td>Le motif de votre message</td><td><input name='sujet' type='radio' value='renseignement'>Renseignement<br>
<input name='sujet' type='radio' value='probleme technique'> Probleme technique<br>
<input name='sujet' type='radio' value='partenariat'>Partenariat</td></tr>
<tr><td>Votre message</td><td><textarea name='texte' cols='50' rows='20'></textarea></td></tr>
<tr><td><input name='annuler' type='reset' value='Annuler'></td><td>
<input name='soumettre' type='submit' value='Envoyer'></td></tr>
</table>
</form>
</body>
</html>


---------------
http://monpub.com
Reply

Marsh Posté le 20-07-2012 à 12:44:56    

Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed