Unexpected $end

Fermé
Toinemf Messages postés 1 Date d'inscription dimanche 11 novembre 2012 Statut Membre Dernière intervention 11 novembre 2012 - 11 nov. 2012 à 12:40
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 12 nov. 2012 à 17:20
Bonjour,
Je fais appel à vous aujourd'hui car je suis en train de modifier un petit code php et au moment de le tester il renvoie un unexpected $end ... J'ai beau cherché la " ' " ou la " { " manquante je ne trouve pas ...
Je remercie déjà celui ou celle qui trouvera l'erreur de synthaxe que j'ai commis =)

<HTML>
<HEAD>
<TITLE>
Formulaire
</TITLE>
</HEAD>


<BODY>

<?php
if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
	$etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
 
	// On récupère les champs du formulaire, et on arrange leur mise en forme
	if (isset($_POST["son_nom"])) $_POST["son_nom"]=trim(stripslashes($_POST["son_nom"])); // trim()  enlève les espaces en début et fin de chaine
 
	if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes()  retire les backslashes ==> \' devient '
 
	if (isset($_POST["son_adresse"])) $_POST["son_adresse"]=trim(stripslashes($_POST["son_adresse"]));
 
	if (isset($_POST["son_codepostal"])) $_POST["son_codepostal"]=trim(stripslashes($_POST["son_codepostal"]));
 
	if (isset($_POST["sa_ville"])) $_POST["sa_ville"]=trim(stripslashes($_POST["sa_ville"]));

	if (isset($_POST["son_telephone"])) $_POST["son_telephone"]=trim(stripslashes($_POST["son_telephone"]));
	// Après la mise en forme, on vérifie la validité des champs
	if (empty($_POST["son_nom"])) 
	{ // L'utilisateur n'a pas rempli le champ pseudo
		$erreur="Vous n'avez pas entré votre nom..."; // On met dans erreur le message qui sera affiché
	}
	if (empty($_POST["son_prenom"])) 
	{ // L'utilisateur n'a pas rempli le champ prenom
		$erreur="Vous n'avez pas entré votre prenom..."; // On met dans erreur le message qui sera affiché
	}
	elseif (empty($_POST["son_email"])) 
	{ // L'utilisateur n'a pas rempli le champ email
		$erreur="Nous avons besoin de votre e-mail pour vous répondre...";
	}
	elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email"]))
	{ // On vérifie si l'email est bien de la forme messagerie@domaine.tld (cf cours d'expressions régulières)
		$erreur="Votre adresse e-mail n'est pas valide...";
	}
	elseif (empty($_POST["son_codepostal"])) 
	{ // L'utilisateur n'a pas rempli le champ objet
		$erreur="Vous devez entrer l'objet de votre message...";
	}
	elseif (empty($_POST["sa_ville"])) 
	{ // L'utilisateur n'a pas rempli le champ objet
		$erreur="Merci de saisir votre ville...";
	}
	else { // Si tous les champs sont valides, on change l'état à ok
		$etat="ok";
	}
}
else 
{ // Sinon le formulaire n'a pas été soumis
	$etat="attente"; // On passe donc dans l'état attente
}
 
if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
	if ($etat=="erreur")
	  { // Cas où le formulaire a été soumis mais il y a des erreurs
		  echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
	  }
?>


 
	<!-- Formulaire HTML qu'on affiche dans l'état attente ou erreur -->
	<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <!-- Les données du formulaire seront récupérée avec la méthode POST, et action correspond à la page contenant le formulaire -->
	<p style="text-align:left">
	<label for="son_nom">Votre nom *</label><br /> <!-- Intitulé du champ nom -->
	<input type="text" size="40" name="son_nom" id="son_nom" />
 
	<br />

	<label for="son_prenom">Votre prenom *</label><br /> <!-- Intitulé du champ prenom -->
	<input type="text" size="40" name="son_prenom" id="son_prenom"/>
 
	<br />
 
	<label for="son_email">E-mail *</label><br /> <!-- Intitulé du champ e-mail -->
	<input type="text" size="40" name="son_email" id="son_email"/>
 
	<br />

	<label for="son_telephone">E-mail *</label><br /> <!-- Intitulé du champ telephone -->
	<input type="text" size="40" name="son_telephone" id="son_telephone"/>
 
	<br />
 
	<label for="son_adresse">Votre adresse *</label><br /> <!-- Intitulé du champ adresse (facultatif) -->
	<input type="text" size="40" name="son_adresse" id="son_adresse" />
 
	<br />
 
	<label for="son_codepostal">Votre code postal *</label><br /> <!-- Intitulé du champ objet -->
	<input type="text" size="40" name="son_codepostal" id="son_codepostal" />
 
	<br />
 
	<label for="sa_ville">Votre ville *</label><br /> <!-- Intitulé du champ ville -->
	<input type="text" size="40" name="sa_ville" id="sa_ville"/>
 
 
	<br />
 
	<input type="submit" name="envoyer" value="Envoyer" /><input type="reset" name="reset" value="Effacer" />
	</p>
	</form>
	<!-- FIN du formulaire HTML -->

<?php

}
else { // Sinon l'état est ok donc on envoie le mail
	$son_nom = $_POST["son_nom"]; // On stocke les variables récupérées du formulaire
	$son_prenom = $_POST["son_prenom"];
	$son_email = $_POST["son_email"];
	$son_telephone = $_POST["son_telephone"];
	$son_adresse = $_POST["son_adresse"];
	$son_codepostal = $_POST["son_codepostal"];
	$sa_ville = $_POST["sa_ville"];
	$son_object = "Stickers pour un avide de sports extrêmes";

	$mon_email = "toinemf@gmail.com"; // Mise en forme du message que vous recevrez
	$mon_pseudo = "Toinemf";
	$mon_adresse = "toine.com";
	$msg = "MESSAGE";
 
	// Mise en forme de l'accusé réception qu'il recevra
	$accuse_pour_lui = "Bonjour $son_prenom,\n Votre message nous a bien été envoyé et nous tâcherons de vous répondre le plus rapidement possible.\n\n 	- Votre E-mail : $son_email \n 	- Votre adresse : $son_adresse \n 	- Votre code postal : $son_codepostal \n 	- Votre ville : \n $sa_ville \n\n 	Merci et à bientôt sur https://www.google.fr/?gws_rd=ssl !";
 
	// Envoie du mail
	$entete = "From: " . $mon_prenom . " <" . $mon_email . ">\n"; // On prépare l'entête du message
	$entete .='Content-Type: text/plain; charset="iso-8859-1"'."\n"; 
	$entete .='Content-Transfer-Encoding: 8bit';
 
	if (@mail($mon_email,$son_codepostal,$msg,$entete) && @mail($son_email,Objet,$accuse_pour_lui,$entete))
	{ // Si le mail a été envoyé
		echo "<p style=\"text-align:center\">Votre message a été envoyé, vous recevrez une confirmation par mail.<br /><br />\n"; // On affiche un message de confirmation
		echo "<a href=\"" . $mon_adresse . "\">Retour</a></p>\n"; // Avec un lien de retour vers l'accueil du site
	}
	else 
	{ // Sinon il y a eu une erreur lors de l'envoi
		echo "<p style=\"text-align:center\">Un problème s'est produit lors de l'envoi du message.\n";
		echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a></p>\n"; // On propose un lien de retour vers le formulaire
	}
}
?>


</BODY>
</HTML>




2 réponses

jordxn Messages postés 356 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 26 avril 2015 1
11 nov. 2012 à 16:40
Chez moi sa marche...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 nov. 2012 à 17:20
Salut, je vois une erreur à cette ligne:

if (@mail($mon_email,$son_codepostal,$msg,$entete) && @mail($son_email,Objet,$accuse_pour_lui,$entete))

Objet sans le $ et d'autre part on ne retrouve pas dans le code cette variable $Objet ?
0