8791 sujets

Développement web côté serveur, CMS

J'ai un formulaire comme ceci :
<?php
// Dans la ligne qui suit, indiquez l'adresse email a laquelle les messages devront etre envoyes
$email_webmaster = "jp.perget@yahoo.fr";
// === traitement des donnes du formulaire ============================================================


if (isset($_POST["envoyer"])){
// le formulaire a ete soumis
	$etat = "erreur";
// erreur est la valeur par defaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
	if (isset($_POST["intitule_expediteur"])) {
			 $_POST["intitule_expediteur"]=trim(stripslashes($_POST["intitule_expediteur"]));
	}
	if (isset($_POST["email_expediteur"])) {
			 $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
	}
	if (isset($_POST["nom_expediteur"])) {
			 $_POST["nom_expediteur"]=trim(stripslashes($_POST["nom_expediteur"]));
	}
	if (isset($_POST["titre"])) {
			 $_POST["titre"]=trim(stripslashes($_POST["titre"]));
	}
	if (isset($_POST["message"])) {
			 $_POST["message"]=trim(stripslashes($_POST["message"]));
	}
// --- test de la validit�des champs saisis ---
	if(ereg("(\r|\n)", $_POST["email_expediteur"]) || ereg("(\r|\n)", $_POST["nom_expediteur"]) || ereg("(\r|\n)", $_POST["titre"]))	{
			// Des sauts de lignes dans les champs non autorisés -> sans doute un spammeur !
			$erreur="Tentative de spam !";
	}
	elseif (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expditeur
			 $erreur="Saisissez votre adresse email...";
	}
// ce test est très strict, il existe des adresses valides qui risquent de pas valider	
	elseif (!eregi("^[0-9a-z][-_.0-9\+a-z]*@[0-9a-z][a-z0-9_-]*\.([a-z0-9_-]+\.)*[a-z]{2,}$", $_POST["email_expediteur"])){
// l'adresse e-mail n'est pas valide
			 $erreur="Votre adresse e-mail n'est pas valide...";
	}
   elseif (empty($_POST["nom_expediteur"])) {
// le nom est vide
			 $erreur="Merci d'indiquer votre nom";
	}
	elseif (empty($_POST["message"])) {
// le message est vide
			 $erreur="Saisissez votre demande";
	}
	else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
			 $etat="ok";
	}
}
else {
// --- le formulaire n'a pas ete soumis ---
                 $etat="attente";
}
// === fin de traitement des donnes du formulaire =======================================================
?>
<div class="post">
<?php
if ($etat!="ok"){
// si le formulaire n'a pas ete soumis, ou soumis avec une erreur
         if ($etat=="erreur"){
//ou  si le formulaire a été soumis avec une erreur
                         echo "<p><strong>".$erreur."</strong></p>";
// alors on affiche le message d'erreur
         }
?>
		
        <form method="post" accept-charset="utf-8" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
		<p class="field"><label for="intitule_expediteur">Vous êtes:</label>
		<input type="text" size="40" name="intitule_expediteur" id="intitule_expediteur" value="<?php
        if (!empty($_POST["intitule_expediteur"])) {
//
                echo htmlspecialchars($_POST["intitule_expediteur"],ENT_QUOTES);
        }
        ?>"/>
        (exemple : Monsieur) 
		<p class="field"><label for="email_expediteur">Votre adresse e-mail&nbsp;:</label>
        <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
        if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
                echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
        }
        ?>" /> 
        (requis)</p>
        <p class="field"><label for="nom_expediteur">Votre nom&nbsp;:</label>
          <input type="text" size="40" name="nom_expediteur" id="nom_expediteur" value="<?php
        if (!empty($_POST["nom_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
                echo htmlspecialchars($_POST["nom_expediteur"],ENT_QUOTES);
        }
        ?>" /> 
          (requis)</p>
        <p class="field"><label for="titre">Titre du message&nbsp;:</label>
          <input type="text" size="40" name="titre" id="titre" value="<?php
        if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le rafficher
                echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
        }
        ?>" />
        </p>
        <p class="field"><label for="message">Votre message&nbsp;:</label>
        <textarea name="message" id="message" cols="30" rows="6"><?php
        if (isset($_POST["message"])) {
// le message a t saisi: le rafficher
                echo htmlspecialchars($_POST["message"],ENT_QUOTES);
        }
        ?></textarea></p>
        <p><input type="submit" name="envoyer" value="Envoyer" />
        </p>
        </form>
<?php
}
else {
// le formulaire a ete soumis sans erreur, on envoie le mail
        $entete  = "From: \"{$_POST["nom_expediteur"]}\" <{$_POST["email_expediteur"]}>\n";
        $entete .= "MIME-Version: 1.0\n";
        $entete .= "Content-Type: text/plain; charset=\"utf-8\"\n";
        $entete .= "Content-Transfer-Encoding: 8bit\n";
// Optionnel mais bien utile : garder trace de l'IP de l'expéditeur
		$entete .= "X-Originating-IP: " . $_SERVER['REMOTE_ADDR'];

// Encode le sujet en BASE64 
		$subject = "=?utf-8?B?" . base64_encode($_POST["titre"]) . "?=";
		
// wrappe à 75 caractères le corp du message, afin de rester conforme avec l'usage...
// juste un bug : wordwrap ne comprends pas les caractères multi-bytes d'UTF-8
// mais en première approximation, c'est suffisant
		$body = wordwrap($_POST['message'], 78);
		
		if (@mail($email_webmaster, $subject, $body, $entete)){
// lorsque le mail aete envoye afficher un message de confirmation et proposer un lien pour revenir a l'accueil
// modifiez le lien de retour en fonction de votre url
                echo "<p>Votre demande a bien été envoyée</p>";
               }
        else {
// s'il s'est produit une erreur lors de l'envoi du mail, on le signale et on propose de retourner au formulaire
                echo "Un probleme s'est produit lors de l'envoi du message.\n";
                echo "<a href=\"".$_SERVER["REQUEST_URI"]."\">Reessayez...</a>\n";
        }
}
?>


Et je souhaite renvoyer tous les champs remplis au mail de destination et je connais pas trop le php.

Merci.
N'ayant pas de réponses, je suppose que la page que j'ai mise est trop grande.

Je vous met juste la partie que j'ai modifié et la partie qui renvoie pour l'instant uniquement le message, et moi je souhaite renvoyé tous les champs au mail de destination mais je sais pas comment :


        <form method="post" accept-charset="utf-8" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
		<p class="field"><label for="intitule_expediteur">Vous êtes:</label>
		<input type="text" size="40" name="intitule_expediteur" id="intitule_expediteur" value="<?php
        if (!empty($_POST["intitule_expediteur"])) {
//
                echo htmlspecialchars($_POST["intitule_expediteur"],ENT_QUOTES);
        }
        ?>"/>
        (exemple : Monsieur)
		 
		<p class="field"><label for="email_expediteur">Votre adresse e-mail&nbsp;:</label>
        <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
        if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
                echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
        }
        ?>" /> 
        (requis)</p>
		
        <p class="field"><label for="nom_expediteur">Votre nom&nbsp;:</label>
          <input type="text" size="40" name="nom_expediteur" id="nom_expediteur" value="<?php
        if (!empty($_POST["nom_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
                echo htmlspecialchars($_POST["nom_expediteur"],ENT_QUOTES);
        }
        ?>" /> 
          (requis)</p>
		  
		 <p class="field">
		   <label for="prenom_expediteur">Votre pr&eacute;nom&nbsp;:</label>
          <input type="text" size="40" name="prenom_expediteur" id="prenom_expediteur" value="<?php
        if (!empty($_POST["prenom_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
                echo htmlspecialchars($_POST["prenom_expediteur"],ENT_QUOTES);
        }
        ?>" /> 
          </p>
		  
		  <p class="field">
		   <label for="psociete_expediteur">Soci&eacute;t&eacute; :</label>
          <input type="text" size="40" name="societe_expediteur" id="societe_expediteur" value="<?php
        if (!empty($_POST["societe_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
                echo htmlspecialchars($_POST["societe_expediteur"],ENT_QUOTES);
        }
        ?>" /> 
		
          </p>
        <p class="field"><label for="titre">Titre du message&nbsp;:</label>
          <input type="text" size="40" name="titre" id="titre" value="<?php
        if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le rafficher
                echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
        }
        ?>" />
        </p>
        <p class="field"><label for="message">Votre message&nbsp;:</label>
        <textarea name="message" id="message" cols="30" rows="6"><?php
        if (isset($_POST["message"])) {
// le message a t saisi: le rafficher
                echo htmlspecialchars($_POST["message"],ENT_QUOTES);
        }
        ?></textarea></p>
        <p><input type="submit" name="envoyer" value="Envoyer" />
        </p>
        </form>
<?php
}
else {
// le formulaire a ete soumis sans erreur, on envoie le mail
        $entete  = "From: \"{$_POST["nom_expediteur"]}\" <{$_POST["email_expediteur"]}>\n";
        $entete .= "MIME-Version: 1.0\n";
        $entete .= "Content-Type: text/plain; charset=\"utf-8\"\n";
        $entete .= "Content-Transfer-Encoding: 8bit\n";
// Optionnel mais bien utile : garder trace de l'IP de l'expéditeur
		$entete .= "X-Originating-IP: " . $_SERVER['REMOTE_ADDR'];

// Encode le sujet en BASE64 
		$subject = "=?utf-8?B?" . base64_encode($_POST["titre"]) . "?=";
		
// wrappe à 75 caractères le corp du message, afin de rester conforme avec l'usage...
// juste un bug : wordwrap ne comprends pas les caractères multi-bytes d'UTF-8
// mais en première approximation, c'est suffisant
		$body = wordwrap($_POST['message'], 78);
		
		if (@mail($email_webmaster, $subject, $body, $entete)){
// lorsque le mail aete envoye afficher un message de confirmation et proposer un lien pour revenir a l'accueil
// modifiez le lien de retour en fonction de votre url
                echo "<p>Votre mail a été envoyé <br /><br /> ";
                echo "Vous allez être redirigé sur la page d'accueil dans 4 secondes <br/><meta http-equiv=\"refresh\" content=\"4;URL=http://www.adresse.fr";
		}
        else {
// s'il s'est produit une erreur lors de l'envoi du mail, on le signale et on propose de retourner au formulaire
                echo "Un probleme s'est produit lors de l'envoi du message.\n";
                echo "<a href=\"".$_SERVER["REQUEST_URI"]."\">Reessayez...</a>\n";
        }
}
?>


Merci.