Formulaire de contact

Résolu
aventurier19 Messages postés 102 Statut Membre -  
aventurier19 Messages postés 102 Statut Membre -
Bonjour,
Je suis en train de faire un formulaire de contact mais j'ai un problème :
J'aimerai faire une liste déroulante dans laquelle il y aurait les différentes personnes à qui on pourrait envoyer un mail et qu'en fonction de la personne la partie $destinataire change

voici mon script :
<?php
	/*
		********************************************************************************************
		CONFIGURATION
		********************************************************************************************
	*/

	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
	$destinataire = 'destinataire';

		$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.
         $destinataire = (isset($_POST['destinataire'])  ? Rec($_POST['destinataire']) : '';
	$nom          = (isset($_POST['nom']))          ? Rec($_POST['nom'])          : '';
	$prenom       = (isset($_POST['prenom']))       ? Rec($_POST['prenom'])       : '';
	$email        = (isset($_POST['email']))        ? Rec($_POST['email'])        : '';
	$sujet        = (isset($_POST['objet']))        ? Rec($_POST['objet'])        : '';
	$message      = (isset($_POST['message']))      ? Rec($_POST['message'])      : '';

	?>

		<select name="destinataire">
      <option selected value="">Faites votre choix</option>
			<option value=""></option>
			<option value="my_email1@dns.fr">Essai</option>
			<option value="my_email2@dns.fr">Christine</option>
			<option value="my_email3@dns.fr">Patrick</option>
			<option value="my_email4@dns.fr">Maryse</option>
    </select>
    
<?php
		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($sujet).'" 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="reset" name="" value="Réinitialiser le formulaire !" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		        <input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
		echo '</form>'."\n";
	};
?>


Quand je veux tester j'ai une erreur Parse error: syntax error, unexpected ';' on line 66 (ligne soulignée)
Si je l'enlève le formulaire s'affiche mais ne fonctionne pas.

Comment faire en sorte que cela fonctionne ?
Configuration: Windows XP Internet Explorer 8.0

4 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    je ne vois pas ta balise <form .... method="post" action="....">
    0
  2. aventurier19 Messages postés 102 Statut Membre 7
     
    je l'ai enlever volonrement pour raccoucir le code

    Je le mets complètement :
    <?php
    	/*
    		********************************************************************************************
    		CONFIGURATION
    		********************************************************************************************
    	*/
    
    	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
    	$destinataire = 'destinataire';
    
    	// copie ? (envoie une copie au visiteur)
    	$copie = 'oui';
    
    	// 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'])          : '';
    	$prenom       = (isset($_POST['prenom']))       ? Rec($_POST['prenom'])       : '';
    	$email        = (isset($_POST['email']))        ? Rec($_POST['email'])        : '';
    	$sujet        = (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="prenom">Prénom :</label>'."\n";
    		echo '			<input type="text" id="nom" name="prenom" value="'.stripslashes($prenom).'" 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";
    ?>
    
    		<label for="destinataire"> Votre message est adressé à :</label>
    		<select name="destinataire">
          <option selected value="">Faites votre choix</option>
    			<option value=""></option>
    			<option value="my_email1@dns.fr">Essai</option>
    			<option value="my_email2@dns.fr">Christine</option>
    			<option value="my_email3@dns.fr">Patrick</option>
    			<option value="my_email4@dns.fr">Maryse</option>
        </select>
        
    <?php
    		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($sujet).'" 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="reset" name="" value="Réinitialiser le formulaire !" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    		        <input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
    		echo '</form>'."\n";
    	};
    ?>
    
    0
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    il te manquait une ) dans la ligne:

    	$destinataire = (isset($_POST['destinataire']))  ? Rec($_POST['destinataire']) : '';
    
    0
  4. aventurier19 Messages postés 102 Statut Membre 7
     
    la solution était vraiment bête mais maintenant ça fonctione
    Merci alain_42
    0