Là, ça me dépasse...

le rouge
Invité n'ayant pas de compte PHPfrance

28 juin 2006, 11:59

Bonjour,

Je pourrais vous demander de prendre quelques minutes pour m aider en lisant mon code de formulaire d envoi de mail.... Parce que il n'affiche rien, comme si il y avait une erreur, mais rien n'est dit... Je comprends pas du tout...

Le lien de ma page
<?php

// TITRE

echo"<h1>Contact</h1>\n";

echo"<p><span>Pour toutes propositions, suggestions, questions, etc.</span></p>\n";

// ON APPELLE LES FONCTIONS

if(isset($nom))
{
	envoi ($cont, $_POST);
}
else
{
	formulaire ($cont);
}

function formulaire ($cont)
{
	// ACTION SUR LE FORMULAIRE DES QUE ON ENVOIE

	echo"<form action=\"index.php?page=cont\" method=\"post\">

	// ON CREE LA LISTE

	echo"<ul>\n";
	echo"<li>Choississez votre destinataire <span>*</span> :</li>\n";

	// ON CHOISIT SON DESTINATAIRE

	echo"<li><select class=\"box\" size=\"1\" name=\"cont\">";
	echo"<option selected=\"selected\">Webmaster</option>";

	// SI ON PASSE PAR LA PAGE ADMINISTRATION

	if($cont == "secr")
	{
		echo"<option selected=\"selected\">Secrétariat</option>"; // ON SELECTIONE SECRETARIAT
	}
	else
	{
		echo "<option>Secrétariat</option>"; // ON SELECTIONNE WEBMASTER COMME NORMAL
	}

	// AUTRES DESTINATAIRES POSSIBLES

	echo"<option disabled=\"disabled\"></option><option>Jean-Denis Chavaillaz</option><option>Agnès Limat</option><option>Jean-Marie Aebischer</option><option>Benoit Chenaux</option><option>Nicolas Corpataux</option><option>Joseph Gumy</option><option>Jacques Perriard</option><option>Anne-Claude Savary</option><option>Dominique Zamofing</option></select></li>\n";

	// ON NOTE LES INFOS DEMANDEES (NOM, EMAIL, SUJET ET MESSAGE)

	echo"<li>Votre Prénom / Nom <span>*</span> :</li>\n";
	echo"<li><input class=\"box\" type=\"text\" name=\"nom\" value=\"Prénom et Nom\" /></li>\n";
	echo"<li>Votre email <span>*</span> :</li>\n";
	echo"<li><input class=\"box\" type=\"text\" name=\"email\" value=\"@\" /></li>\n";
	echo"<li>Sujet <span>*</span> :</li>\n";
	echo"<li><input class=\"box\" type=\"text\" name=\"sujet\" value=\"Site de Hauterive\" /></li>\n";
	echo"<li>Votre message <span>*</span> :</li>\n";
	echo"<li><textarea class=\"textarea\" cols=\"60\" rows=\"5\" name=\"texte\"></textarea></li>\n";
	echo"<li><span>* Tous les champs du formulaire doivent être remplis!</span></li>\n";
	echo"<li><input class=\"bouton\" type=\"submit\" value=\"Envoyer\" name=\"envoyer\" /> <input class=\"bouton\" type=\"reset\" value=\"Rétablir\" name=\"reset\" /></li>\n";
	echo"</ul>\n";
	echo"</form>\n";
}

function envoi($cont, $_POST)
{
	// ON NETTOIE LES VARIABLES
	
	$nom = ucwords(trim(nl2br(stripslashes($_POST["nom"])))); // MAJUSCULE EN PLUS AU NOM
	$email = trim(nl2br(stripslashes($_POST["email"])));
	$sujet = trim(nl2br(stripslashes($_POST["sujet"])));
	$texte = ucfirst(trim(nl2br(stripslashes($_POST["texte"])))); // MAJUSCULE EN PLUS AU MESSAGE
	$entete = trim(nl2br(stripslashes($_POST["entete"])));
	$contenu = trim(nl2br(stripslashes($_POST["contenu"])));

	$contenu = "Nom et Prénom: ".$nom."\n\n"."Email: ".$email."\n\n"."Message: \n\n".($texte)."\n";

	$entete.= "contactent-type: text/html; charset=iso-8859-1\r\n";
	$entete.= "From: ".$nom." <".$email.">\r\n";

	// VERIFICATIONS DU FORMULAIRE

	// SI IL Y A PAS DE DESTINATAIRE

	if(empty($cont))
	{
		echo"<h1>Erreur dans le formulaire</h1>\n";
		echo"<p>» Vous n'avez pas choisi de destinataire.</p>\n";
		echo"<hr />\n";

		formulaire ($cont);

		echo"<hr />\n";
		echo"<p><a href=\"javascript:history.back();\">Retour</a></p>\n";
	}
	
	// SI IL Y A PAS DE NOM

	elseif(empty($nom))
	{
		echo"<h1>Erreur dans le formulaire</h1>\n";
		echo"<p>» Vous n'avez pas écrit votre nom.</p>\n";
		echo"<hr />\n";

		formulaire ($cont);

		echo"<hr />\n";
		echo"<p><a href=\"javascript:history.back();\">Retour</a></p>\n";
	}

	// SI LE NOM A PAS CHANGE

	elseif($nom == "Prénom Et Nom")
	{
		echo"<h1>Erreur dans le formulaire</h1>\n";
		echo"<p>» Votre Prénom / Nom n'a pas l'air d'être valide.</p>\n";
		echo"<hr />\n";

		formulaire ($cont);

		echo"<hr />\n";
		echo"<p><a href=\"javascript:history.back();\">Retour</a></p>\n";
	}

	// SI IL Y A PAS D'EMAIL

	elseif(empty($email))
	{
		echo"<h1>Erreur dans le formulaire</h1>\n";
		echo"<p>» Vous n'avez pas écrit votre email.</p>\n";
		echo"<hr />\n";

		formulaire ($cont);

		echo"<hr />\n";
		echo"<p><a href=\"javascript:history.back();\">Retour</a></p>\n";
	}

	// SI L'EMAIL NE FAIT PAS MINIMUM 6 CARACTERES

	elseif(strlen($email) < 6)
	{
		echo"<h1>Erreur dans le formulaire</h1>\n";
		echo"<p>» Votre adresse email n'a pas l'air d'être valide.</p>\n";
		echo"<hr />\n";

		formulaire ($cont);

		echo"<hr />\n";
		echo"<p><a href=\"javascript:history.back();\">Retour</a></p>\n";
	}

	// SI IL Y A PAS DE SUJET

	elseif(empty($sujet))
	{
		echo"<h1>Erreur dans le formulaire</h1>\n";
		echo"<p>» Vous n'avez pas écrit de sujet.</p>\n";
		echo"<hr />\n";

		formulaire ($cont);

		echo"<hr />\n";
		echo"<p><a href=\"javascript:history.back();\">Retour</a></p>\n";
	}

	// SI IL Y A PAS DE MESSAGE

	elseif(empty($texte))
	{
		echo"<h1>Erreur dans le formulaire</h1>\n";
		echo"<p>» Vous n'avez pas écrit de message.</p>\n";
		echo"<hr />\n";

		formulaire ($cont);

		echo"<hr />\n";
		echo"<p><a href=\"javascript:history.back();\">Retour</a></p>\n";
	}

	// SINON ON ENVOIE

	else
	{
		switch($contact)
		{
			case "Webmaster":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Secrétariat":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Jean-Denis Chavaillaz":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Agnès Limat":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Jean-Marie Aebischer":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Benoit Chenaux":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Nicolas Corpataux":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Joseph Gumy":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Jacques Perriard":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Anne-Claude Savary":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
			case "Dominique Zamofing":
				mail("[email protected]", $sujet, $contenu, $entete);
			break;
		}

		// CONFIRMATION DE L'ENVOI

		echo"<h2>» Merci pour votre message, vous recevrez une réponse le plus rapidement possible.</h2>\n";
		echo"<ul />\n";
		echo"<li>contactact : ".$cont."</li>\n";
		echo"<li>Prénom / Nom : ".$nom."</li>\n";
		echo"<li>Email : ".$email."</li>\n";
		echo"<li>Sujet : ".$sujet."</li>\n";
		echo"<li><hr /></li>\n";
		echo"<li>Message :<br /><br />".$texte."</li>\n";
		echo"</ul>\n";

		// LIEN RETOUR ET SEPARATION

		echo"<hr />\n";
		echo"<p><a href=\"index.php?page=contact\">Retour</a></p>\n";
	}
}

?>
[/url]

Mammouth du PHP | 1353 Messages

28 juin 2006, 12:04

Déclare tes fonctions AVANT de les appeler ca pourrait marcher mieux.

Aussi pense a fermer le <div id="cont"> :)
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 juin 2006, 12:07

Faudrait mettre un titre un peu plus explicite... :)

Sinon tu as :

ligne 24 : la chaine n'est pas fermée :
echo"<form action=\"index.php?page=cont\" method=\"post\">

ligne 33 : l'une des guillemet n'est pas protégée
echo"<li><select class="box\" size=\"1\" name=\"cont\">";

le rouge
Invité n'ayant pas de compte PHPfrance

28 juin 2006, 12:11

Mon div est fermé... :D

C'était bel et bien le echo du form action qui jouait pas... Merci bien!!!!