Aide formulaire

kevindu26 Messages postés 6 Statut Membre -  
kevindu26 Messages postés 6 Statut Membre -
Bonjour, je débute en programmation de pages web, c'est pour cela que je viens vous demander du soutien afin que vous puissiez m'aider à faire marcher correctement mon formulaire. Le formulaire que j'ai créé permet d'envoyer toutes les données saisies par l'utilisateur à ma boîte mail.
Sachant que mon formulaire utilise 2 pages :
- 1 en html/php ( structure de mon formulaire), qui se nomme "contact.php"
-L'autre en php (pour récupérer mes données et les envoyer par mail), qui se nomme "envoi_mail.php"

Voici ma page contenant la structure du formulaire :
 <form  action="envoi_mail.php" method="post"  enctype="multipart/form-data">
<table>
 <td>
 
	<input type="hidden" name="subject" value="envoi_mail.php">

  	<input  type="radio" name="titre" value="M."  /> M.
       <input type="radio" name="titre" value="Mme" /> Mme
	<input type="radio" name="titre" value="Mlle" /> Mlle
	
 <p> <input type="text" name="nom"  value="Nom" class="formulaireContact" onfocus="if       (this.value=='Nom')   this.value=''"onblur="if (this.value=='') this.value='Nom'"/> 

	<input type="text" name="prenom"  value="Prénom" class="formulaireContact" onfocus="if (this.value=='Prénom') this.value=''"onblur="if (this.value=='') this.value='Prénom'"/> </p>
 
    
 <p>  <input type="text" name="tel"  value="Tel"  onfocus="if (this.value=='Tel') this.value=''"onblur="if (this.value=='') this.value='Tel'"/> 
	
         <input type="text" name="fax"  value="Fax"  onfocus="if (this.value=='Fax') this.value=''"onblur="if (this.value=='') this.value='Fax'"/>  </p>
 

 
<p> <input type="text" name="portable"  value="Portable"  onfocus="if (this.value=='Portable') this.value=''"onblur="if (this.value=='') this.value='Portable'"/> </p>
	

<p>  <input type="text" name="mail"  value="E-mail"  onfocus="if (this.value=='E-mail') this.value=''"onblur="if (this.value=='') this.value='E-mail'"/>    </p>
	
<p>   <input type="text" name="adresse"  value="Adresse"  onfocus="if (this.value=='Adresse') this.value=''"onblur="if (this.value=='') this.value='Adresse'"/> 

	<input type="text" name="ville"  value="Ville"  onfocus="if (this.value=='Ville') this.value=''"onblur="if (this.value=='') this.value='Ville'"/> 
	<input type="text" name="CP"  value="Code Postal"  onfocus="if (this.value=='Code Postal') this.value=''"onblur="if (this.value=='') this.value='Code Postal'"/>     </p>
		
                <br />
		<br />
		
		
     <p >    <label for="titre"class="Intitule">Intitulé du message(maximum 30 mots) :</label>  </p>
	  
	 <textarea name="intitule" id="intitulé" class="tableau3PageContact"  ></textarea>
       <br />
	 
	<p class="pcommentaire" >  Commentaires:   </p>
	<textarea name="commentaire"  rows="8" cols="45" class="tableau2PageContact" >
	</textarea>

    
	<p><input type="submit"  name="envoi" value="Envoyer" class="tableau4PageContact"/></p>
	
	
</td>

  <td class="tableauPieceJointe">	
       <p>   Pièce jointe ( inférieure 8 Mo):   </p>
	     <input  type="file" name="message" />
	    <input type=hidden name=MAX_FILE_SIZE  VALUE=8388608>
      <p > <label for="titre">Description du fichier transmis :</label>  </p>
    <textarea name="description" id="description" rows="2"! cols="30"></textarea> 
	
	
</td>
	
</table>
	</form>


Et voici ma page envoi_mail.php:

<?php
	
		
            // copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'

      // Messages de confirmation du mail
$message_envoye = "Nous avons bien reçu votre message !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer s'il vous plait.";

	// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.php\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

$mail=$_POST['mail'];



$destinataire="kevindu26@laposte.net";



 
 
 
 
 
 
    if (!isset($_POST['envoi'])) // on teste si le formulaire a été soumis
    {
		
		echo '<p>'.$message_erreur_formulaire.'</p>'."\n";  // formulaire non envoyé
	}

	
	
		else
	{
		/*
		 * cette fonction sert à nettoyer et enregistrer un texte
		 */
		function Rec($text)
		{
			$text = trim($text); // suppression des espaces avant et après le texte
			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;
		};


	
	//La fonction IsEmail sert à vérifier la syntaxe d'un email
		 
		function IsEmail($mail)
		{
			$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$"; //^ = début de l'expression
																				//.+= au moins un caractère quelconque
																				//@ = le caractère arrobase
																				//.+ = au moins un caractère quelconque
																				//. = le caractère '.'
																				//.+ = au moins un caractère quelconque
																				//$ = fin de l'expression 
			return (eregi($pattern,$mail)) ? true : false;
		};
		
	
       // formulaire envoyé, on récupère tous les champs.

	    $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';  // isset = is set = est défini
        $objet=(isset ($_POST['intitule'])) ? Rec ($_POST['intitule'])   :'';	   
		$titre= (isset ($_POST['titre'])) ? Rec ($_POST['titre'])   :'';
		$nom= (isset ($_POST['nom'])) ? Rec ($_POST['nom'])   :'';
		$prenom= (isset ($_POST['prenom'])) ? Rec ($_POST['prenom']) : '';
		$telephone= (isset ($_POST['tel'])) ? Rec ($_POST['tel']) :'';
		$fax=( isset ($_POST['fax'])) ? Rec ($_POST['fax']) : '';
		$port= ( isset ($_POST['portable'])) ? Rec ($_POST['portable']) :'';
		$ad= (isset ($_POST['adresse'])) ? Rec ($_POST['adresse']) : '';
		$v= (isset ($_POST['ville'])) ? Rec ($_POST['ville']) : '';
		$cp=( isset ($_POST['CP'])) ? Rec ($_POST['CP']) : '';
		$coment= (isset ($_POST['commentaire'])) ? Rec ($_POST['commentaire']) : '';
		
		
		// On vérifie les variables et l'email 
		$mail = (IsEmail($mail)) ? $mail : ''; // soit la variable $email est vide si le contenu est erroné , soit elle prend le contenu de 
		//l'email entré

		if (($nom != '') && ($mail != '') && ($objet != '') && ($comment != '')) //"!" représente la négation/
		{
			// les 4 variables sont remplies, on génère puis envoie le mail
			$headers = 'From: '.$nom.' <'.$mail.'>' . "\r\n";

			// envoyer une copie au visiteur ?
			if ($copie == 'oui')
			{
				$cible = $destinataire.','.$mail;
			}
			else
			{
				$cible = $destinataire;
			};
	
	// Remplacement de certains caractères spéciaux
			$comment = str_replace("&#039;","'",$comment);
			$comment = str_replace("&#8217;","'",$comment);
			$comment = str_replace("&quot;",'"',$commente);
			$comment = str_replace('<br>','',$comment);
			$comment = str_replace('<br />','',$comment);
			$comment = str_replace("<","<",$comment);
			$comment = str_replace(">",">",$comment);
			$comment = str_replace("&amp;","&",$comment);
			
			
			// Envoi du mail
			if (mail($cible, $objet,$comment))
			{
				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";
		};
	}; // fin du if (!isset($_POST['envoi']))
?>
	
	
	
	










Si vous êtes arrivé jusque là c'est que vous avez eu du courage :=) et je vous en remercie!

4 réponses

Leeroy
 
Voici un lien qui te sera surement utile http://www.ge-net.ch/page/rw-wfco-owb-0.html
1
acab89
 
Bonsoir , j'ai testé votre formulaire , il ne semble pas fonctionné , aucun message d'erreur , ni d'envoi ??dommage , il est très complet , si vous trouvez , signalez le , merci , cordialement
0
kevindu26 Messages postés 6 Statut Membre
 
D'accord, dès que j'ai la solution je la posterai sur le forum. D'ici là je prends toutes les propositions succeptibles de résoudre mes erreurs. Sachant que l'erreur principale (est située sur la page envoi_mail.php).
Quand je remplis tout les champs de mon formulaire et que je clique sur valider, le message d'erreur que j'ai défini auparavant s'affiche:

echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";

(ce qui donne en français :Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur. Retour au formulaire )

Je pense donc que je dois avoir une erreur lors de la déclaration des variable et peut-être aussi dans la structure de mes "if" "else". (dans la page en php)

Si il vous faut plus d'infos, je suis dispo ;) . Merci d'avance pour votre aide.
0
kevindu26 Messages postés 6 Statut Membre
 
Merci pour ton lien, je vais essayer de m'en inspirer. Je reste quand même disposer à résoudre mon code, alors si quelqu'un a des propositions de solutions je suis preneur. Merci beaucoup.

En attente de vos solutions...
0
acab89
 
ERRATUM pour l'accolade
if (!isset($_POST['envoi'])) // on teste si le formulaire a été soumis
{

echo '<p>'.$message_erreur_formulaire.'</p>'."\n"; // formulaire non envoyé
}

else
{ // il manquait ici une {
0
kevindu26 Messages postés 6 Statut Membre > acab89
 
D'accord merci énormèment pour la solution, vous me sortez vraiment une épine du pied. Je ne sais comment vous remercier. J'ai vu comme quoi vous allez essayer de résoudre le pb de l'envoi et/ou la réception de la pièce jointe. Je vous en suis vraiment reconnaissant, et vous souhaite du courage!

P.S. : si vous n'y arrivez pas ce n'est pas grave. Vous m'avez déjà bien aidé!
0