Liste déroulante pour formulaire contact

Résolu/Fermé
hawaien88 Messages postés 49 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 13 mai 2012 - 27 sept. 2009 à 13:51
hawaien88 Messages postés 49 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 13 mai 2012 - 2 janv. 2010 à 19:01
Bonjour,

Je suis nouveau dans le monde du script php et html, et j'essaie de comprendre à l'aide de script prix un peu partout sur le net... Mais j'ai encore du mail avec les fonctions php qui appel des fonctions ou autre.

Je vous expose donc mon problème. J'administre un site web http://marcahndsdereves.free.fr créé à l'aide d'un logiciel wysiwyg et j'ajoute des fonctions en edit (fonction basique), la fonction qui me bloque actuellement est le formulaire de contact avec choix du destinataire. J'ai donc trouvé un script qui me plait au niveau affichage car après avoir passé 2 semaines à essayé de la faire moi même ( ma petite femme ne supporte plus mais squat sur le pc tous les soirs pour la programmation) je me suis rabattu sur un script tout fait et celui la à la particularité de tenir en 1 fichier. Le souci est donc d'y ajouter le choix du destinataire dans une liste déroulante, qui est un souci majeur. J'ai donc mon script ci dessous :

<head>
<title>Contact Francois</title>
</head>

<?php
	/*
		********************************************************************************************
		CONFIGURATION
		********************************************************************************************
	*/
	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
	$destinataire = 'monadresse@gmail.com'

	// 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'])     : '';
	$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 votre mail !" /></div>'."\n";
		echo '</form>'."\n";
	};
?>



je sais que je dois ajouté ces lignes ou une partie de ces ligne pour le choix du destinataire mais le tout étant en un seul fichier je suis complètement perdu.

Destinataire : <select name="destinataire">
   <option value="monadresse@gmail.com">Mon Adresse</option>
   <option value="uneautreadresse@hotmail.fr">Une autre adresse</option>
   <option value="encoreuneautre@pourquoipas.fr">encore une autre adresse</option>
  </select><br>


Ou ajouter cela si c'est bien ce que je dois ajouter et comment le rappelé dans le script...

En général je ne demande pas de l'aide aussi précise je demande juste des conseil ou une petite info mais la je suis complètement perdu.. lol

Merci de votre patience et d'avoir prit le temps de me lire.

En espérant que vous avez une idée de comment faire.

PS: désolé de la façon dont le script est posté mais je n'ai pas trouvé le moyen de l'inclure dans le post autrement.

5 réponses

giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
28 sept. 2009 à 10:49
bonjour,

j'ai l'impression qu'il va falloir modifier des choses.

il me semble qu'il faudrait un formulaire pour sélectionner le ou les destinataires avec donc cette liste

pour créer cette liste il faut donc faire une requête pour avoir tous les destinataires potentiels
si ces destinataires sont dans un tableau ex $dest
j'écris ce truc mais je ne peux le tester, il faut vous en inspirer

<head>
<script language='JavaScript'>
function ajout(dest){
document.choidest.listedest.value =document.choidest.listedest.value + dest;
}
</script>
</head>
<form name='choixdest' php_action='envoi_message.php'>
<select name='undest'>
<?php
for ($i=0;$i<sizeof($dest);$i++){
echo "<option onclick='ajout($dest[$i])' value='".$dest[$i]."'>".$dest[$i]."</option>";
}
?>
<input type='hidden' name='listedest'>
<input type='submit' value='envoyer'>
</select>
</form>

-----
envoi_message.php
récupère la liste créée dans $_POST['listedest']
1
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
27 sept. 2009 à 17:56
bonjour,
pourquoi faire simple quand on peut faire compliqué ?
dans votre srcipt, on ne voit pas où vous avez une liste déroulante pour choisir les destinatires.

pour cela il faut faire un fomulaire dna slequelm vous allez sélectionner dans un boucle les destinatiares pour créer unz variable du genre $dest='ad_dest1, ad_dest2.....'

ensuite vous allez dans votre script d'envoi.
un script plus simple ici : http://monpcetmoi.u7n.org/switch.php?page=webtools
0
hawaien88 Messages postés 49 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 13 mai 2012 424
27 sept. 2009 à 20:03
Bonjour giheller et merci d'avoir pris le le temps de me lire.

En effet dans mon script on ne voit pas la liste déroulante car justement je ne sais pas ou la mettre, comme je le dis je ne connais quasi rien en fonction php car j'ai développé avec un editeur wisiwig. J'ai regardé votre lien et le problème reste le même il faut que j'y intègre la liste déroulante qui est mon principale souci. car je ne connais pas l'endroit ou il faut l'intégrer. En ce qui concerne le script en lui meme je pense pouvoir le trouver sur le net maintenant si on pouvez m'expliquer comment le faire et le fonctionnement des différentes lignes qui le compose c'est encore mieu. Comme çà on me donne pas le script tout fait et au moins je mets la main à la pate et je comprends ce que je fais.

Merci à ceux qui participe.
0
hawaien88 Messages postés 49 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 13 mai 2012 424
29 sept. 2009 à 21:10
Bonsoir,

En ce qui concerne votre morceau de code, j'ai essayé de l'intégrer mais je me retrouve avec des erreurs...

Je pense que je vais finir par attendre qu'un dévéloppeur est besoin de la même appli que moi et qu'il la mettre sur google lol...

Nan plus sérieusement je vais essayé de comprendre le PHP pour développé moi meme. En attendant je laisse le système de mail que j'ai actuellement.

Merci @ tous je ne mets pas en résolu on ne sait jamais.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hawaien88 Messages postés 49 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 13 mai 2012 424
2 janv. 2010 à 19:01
Bonsoir,

Je reviens sur mon post car je viens de me rendre compte qu'il n'était toujours pas en résolu...

Je viens donc informer les personnes qui m'ont aidées que le problème avait été solutionné...

En effet après pas mal de recherche, j'ai trouvé un script avec flash... dans le cas ou çà peut aider je fournis le lien ou je l'ai trouvé...

https://codes-sources.commentcamarche.net/

très bien expliqué et relativement simple à mettre en place mais il faut posséder flash pour les modifications et l'auteur ne semble plus répondre aux questions. Mais novice comme je suis j'ai su me débrouiller seul, je vous laisse imaginer la simplicité...


Si vous voulez voir comment il se présente je vous laisse allez voir sur mon site à l'adresse :

http://marchandsdereves.fr/

Bonne soirée et bonne année @ tous
0