01net    Web


Actuellement en ligne : 201 Utilisateurs dont 9 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > PHP
> Formulaire email - un champ n'apparaît pas dans le email
Auteur
Message
 
<     1       >
antbilly
  
   
      ?   @     Posté le 30/01/2007 02:11:41  
Voter pour ce message
Bonjour à tous,

j'ai un formulaire de courriel qui utilise du php. J'ai 3 champs à remplir, et ces 3 champs sont supposer apparaitre dans le email reçue. Or, les infos du champs 'nom' n'appairaisse pas. Pourquoi?

<?php //Validation des champs de formulaire (tu peux aussi le faire en javascript dans ta page de formulaire).
if(empty($HTTP_POST_VARS['nom']) || empty($HTTP_POST_VARS['courriel']) || empty($HTTP_POST_VARS['message']))
{
header('Location:error.htm');
}
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From:".$HTTP_POST_VARS['courriel']."\r\n";
$nom = $HTTP_POST_VARS['nom'];
$toAdress = "info@nomdedomaine.com";
$subject = "Commentaires !";
$mailContent = stripslashes($HTTP_POST_VARS['message']);

// Expédition du courriel au client
mail($toAdress, $subject, $mailContent, $headers);
?>


J'ai essayé ça:

mail($toAdress, $subject, $mailContent, $headers, $nom);

sans succès. Pourtant, ce doit être simple, jsuis sur.

Merci d'avance de votre aide!
Minus-et-Cortex
  
   
      ?   @     Posté le 30/01/2007 05:55:45  
Voter pour ce message
Salut!

Essaye de modifier ton code en
<?php //Validation des champs de formulaire (tu peux aussi le faire en javascript dans ta page de formulaire).
if(empty($HTTP_POST_VARS['nom']) || empty($HTTP_POST_VARS['courriel']) || empty($HTTP_POST_VARS['message']))
{
header('Location:error.htm');
}
$nom = $HTTP_POST_VARS['nom'];
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$nom." <".$HTTP_POST_VARS['courriel'].">\r\n";
$toAdress = "info@nomdedomaine.com";
$subject = "Commentaires !";
$mailContent = stripslashes($HTTP_POST_VARS['message']);

// Expédition du courriel au client
mail($toAdress, $subject, $mailContent, $headers);
?>

-->Message édité par Minus-et-Cortex le 30/01/2007 06:10:54<--
-------
Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.
Gustave Parking
TRiPoLYT
  Jesus was a Geek
  :-)
      ?   ^   @     Posté le 30/01/2007 14:48:24  
Voter pour ce message
J'utilise un système extra simple :
j'ai 2 fichiers :
- un script d'envoi de mail
- la page d'exécution du script, qui fait office de confirmation d'envoi de mail

la page de script ne change jamais quelquesoit le mail que j'envoie, ça gère plusieurs pièces jointes, pas de souci.

Ya un exemple d'utilisation par le mec qu'a fait le script à la fin du premier quote, sinon, pour ton cas, faudrait mettre les infos du second quote dans ta page de script.

<?

/*
* Class mime_mail
* Original implementation by Sascha Schumann <sascha@schumann.cx>
* Modified by Tobias Ratschiller <tobias@dnet.it>:
* - General code clean-up
* - separate body- and from-property
* - killed some mostly un-necessary stuff
*/

class mime_mail
{
var $parts;
var $to;
var $from;
var $headers;
var $subject;
var $body;

/*
* void mime_mail()
* class constructor
*/
function mime_mail()
{
$this->parts = array();
$this->to = "";
$this->from = "";
$this->subject = "";
$this->body = "";
$this->headers = "";
}

/*
* void add_attachment(string message, [string name], [string ctype])
* Add an attachment to the mail object
*/
function add_attachment($message, $name = "", $ctype = "application/octet-stream")
{
$this->parts[] = array (
"ctype" => $ctype,
"message" => $message,
"encode" => $encode,
"name" => $name
);
}

/*
* void build_message(array part=
* Build message parts of an multipart mail
*/
function build_message($part)
{
$message = $part["message"];
$message = chunk_split(base64_encode($message));
$encoding = "base64";
return "Content-Type: ".$part["ctype"].
($part["name"]?"; name = \"".$part["name"]."\"" : "").
"\nContent-Transfer-Encoding: $encoding\n\n$message\n";
}

/*
* void build_multipart()
* Build a multipart mail
*/
function build_multipart()
{
$boundary = "b".md5(uniqid(time()));
$multipart = "Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";

for($i = sizeof($this->parts)-1; $i >= 0; $i--)
{
$multipart .= "\n".$this->build_message($this->parts[$i])."--$boundary";
}
return $multipart.= "--\n";
}

/*
* void send()
* Send the mail (last class-function to be called)
*/
function send()
{
$mime = "";
if (!empty($this->from))
$mime .= "From: ".$this->from."\n";
if (!empty($this->headers))
$mime .= $this->headers."\n";

if (!empty($this->body)) {
//$this->add_attachment($this->body, "", "text/plain");
$this->add_attachment($this->body, "", "text/html"); }
$mime .= "MIME-Version: 1.0\n".$this->build_multipart();
mail($this->to, $this->subject, "", $mime);
}
}; // end of class

/*
* Example usage
*
$mail = new mime_mail();
$mail->from = "foo@bar.com";
$mail->headers = "Errors-To: ton@mail.com";
$mail->to = "bar@foo.com";
$mail->subject = "Testing...";
$mail->body = "This is just a test.";
$mail->add_attachment("$attachment", "test.jpg", "image/jpeg");
$mail->send();
$attachment = fread(fopen("test.jpg", "r"), filesize("test.jpg"));



*/
?>



et il me suffit de traiter les données brutes comme suit :

/* ----- ----- ----- ----- ----- ----- important !!! ----- */
require("ext/objet_mail.php");


/* ----- ----- ----- ----- ----- ----- début de la feuille de style ----- */
$feuille_style = "\n";
$feuille_style .= "<style type=\"text/css\"><!--"."\n";

blablabla, ta feuille de style quoi !

$feuille_style .= "--></style>"."\n";
$feuille_style .= "\n";
/* ----- ----- ----- ----- ----- ----- fin de la feuille de style ----- */


/* ----- ----- ----- ----- ----- ----- début du mail ----- */
$msg_destinataire = "\n";
$msg_destinataire .= "<body><head>" . $feuille_style . "</head><body>" . "\n";

ton blablabla avec tes variables etc...

$msg_destinataire .= "</body></html>" . "\n";
$msg_destinataire .= "\n";
/* ----- ----- ----- ----- ----- ----- fin du mail ----- */


/* ----- ----- ----- ----- ----- ----- envoi du mail ----- */
$mime = new mime_mail();
$mime->from = "mail@expediteur.com";
$mime->to = "$mail_destinataire";
$mime->subject = "le sujet du mail";
$mime->body = "$msg_destinataire";
$mime->send();


si tu trouves pas ça assez clair... mp moi !
-->Message édité par TRiPoLYT le 30/01/2007 15:06:43<--
-------
"bonjour", "s'il vous plait", [...] "merci", "au revoir"... tout ça tout ça !
<     1       >

01net > Forum de 01net > Programmation et développement > PHP
> Formulaire email - un champ n'apparaît pas dans le email

Aller à :

Page générée en : 0.063s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

Jeu-concours
Rugby : gagnez des places pour le match Perpignan - Trévise, premier tour de la H Cup.
Auto
Cote : envie de revendre votre auto? Calculez gratuitement la valeur de votre voiture !