Problème d'alert php

Fermé
kefah Messages postés 37 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 18 août 2011 - 5 juin 2011 à 12:05
 Profil bloqué - 6 juin 2011 à 00:47
Bonjour,
J'ai un petit souci avec mon formulaire, j'ai créé deux pas l'une reservation.html et lautre "cible" resa.php tout marche bien, seulement le message pour dire au client que son réservation à bien été prise en compte ou non :( s'affiche du coté page cible "resa.php" c'est logique parce que le code d'affichage de message est dans la page cible, MAIS EST CE QUE SELON VOUS IL Y A UNE POSSSIBILITE D'AFFICHER LE MESSAGE DANS LA PAGE RESERVATION.HTML ??

MERCI D4AVANCE.

VOICI LE CODE :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>ma page</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="forme" href="forme.css" />
	   <script type="text/javascript">
<!--
   sfHover = function() {
        var sfEls = document.getElementById("menu").getElementsByTagName("LI");
        for (var i=0; i<sfEls.length; i++) {
                sfEls[i].onmouseover=function() {
                        this.className+=" sfhover";
                }
                sfEls[i].onmouseout=function() {
                        this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
                }
        }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
-->
</script>
<?php
ini_set("SMTP","mon smtp");
ini_set("sendmail_from","mon mail"); 
?>


   </head>
   <body>
   

<?php
	/*
		********************************************************************************************
		CONFIGURATION
		********************************************************************************************
	*/
	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
	$destinataire = 'mon mail';
	// Message de confimation de destinataire copie
	$confirmation = "Nous vous confirmon que votre réservation à été bien prise en compte.  merci et à bientôt";

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

	// Messages de confirmation du mail
	$message_envoye = "Votre message nous est bien parvenu ! <a href=\"reservation.html\">Retour</a>";
	$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

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

	/*
		********************************************************************************************
		FIN DE LA CONFIGURATION
		********************************************************************************************
	*/

	// on teste si le formulaire a été soumis
	if (!isset($_POST['envoi']))
	{
		// formulaire non envoyé
		echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
	}
	else
	{
		/*
		 * 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 = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
			return (eregi($pattern,$email)) ? true : false;
		};*/
{ 
   $pattern='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; 
   if(preg_match($pattern,$email)) 
      return true; 
   else 
     return false; 
}

		// formulaire envoyé, on récupère tous les champs.
		$objet   = (isset($_POST['objet']))     ? Rec($_POST['objet'])     : '';
		$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])    : '';
		$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
		$nomb_de_pers   = (isset($_POST['nomb_de_pers']))   ? Rec($_POST['nomb_de_pers'])   : '';
		$numero_de_tel     = (isset($_POST['numero_de_tel']))     ? Rec($_POST['numero_de_tel'])     : '';
		$heure    = (isset($_POST['heure']))     ? Rec($_POST['heure'])     : '';
		$minute    = (isset($_POST['minute']))     ? Rec($_POST['minute'])     : '';
		$date     = (isset($_POST['date']))     ? Rec($_POST['date'])     : '';
		$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

		// 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é

		if ( ($objet != '') && ($nom != '') && ($nomb_de_pers != '') && ($numero_de_tel != '') && ($email != '') && ($heure != '') && ($minute != '')  && ($date != ''))
		{
			// les 4 variables sont remplies, on génère puis envoie le mail
			$headers = 'Nom : '.$nom.'
			Nombre de couverts : '.$nomb_de_pers.'
			Numéro de téléphone : '.$numero_de_tel.' 
			Email : '.$email.' 
			Date : '.$date.' 
			Heure de réservation : '.$heure.''.$minute.' 
			Commentaire : '.$message.' ' . "\r\n";

			// envoyer une copie au visiteur ?
			if ($copie == 'oui')
			{
				
				$cible = $destinataire.','.$email;
				 
				
			}
			else
			{
				$cible = $destinataire;
			};

			// Remplacement de certains caractères spéciaux
			$message = str_replace("&#039;","'",$message);
			$message = str_replace("&#8217;","'",$message);
			$message = str_replace("&quot;",'"',$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
			$message = str_replace("<","<",$message);
			$message = str_replace(">",">",$message);
			$message = str_replace("&amp;","&",$message);

			// Envoi du mail
			if (mail($cible, $objet, $headers, $confirmation))
			{
				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="reservation.html">Retour au formulaire</a></p>'."\n";
		};
	}; // fin du if (!isset($_POST['envoi']))
?>




A voir également:

3 réponses

le_joker_fou Messages postés 764 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 7 août 2014 239
5 juin 2011 à 16:14
il te suffit de mettre ta page reservation.html comme cible de ton formulaire (pense à la passer en php.
0
kefah Messages postés 37 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 18 août 2011 3
6 juin 2011 à 00:20
Merci de ton réponse, il est possible, mais pour une question de sécurité vaut mieux que la page cible soit séparer (c'est ce que j'ai appris sur le site de Zero)

Crois tu qu'on peux faire autrement que mettre tout le code en une seul page ?

Merci :)
0
Profil bloqué
6 juin 2011 à 00:47
Sinon tu fais ça avec une variable de session, tu la modifies en fonction de si la réservation est bonne ou pas, et suivant le cas, tu pourras afficher ta fenêtre sur la page en cours (ou n'importe laquelle), suite à quoi tu réinitialiseras ta variable !
0