Re bonjour a toutes et tous Smiley lol

Mon petit probléme du jour (je n'y connais rien en php Smiley bawling

J'ai récupéré un code pour l'envoi d'un formulaire et tout ce passe bien, le formulaire est bien envoyé, bien formaté (enfin suffisament).
Je retourne a ma page d'accueil aprés l'envoie (mon formulaire étant dans un include je n'ai pas trouvé comment revenir à ma page "livre d'or".

Donc si une hame généreuse veut bien m'aider j'aimerai : revenir à la page du formulaire avec celui-ci les champs vidé, mais surtout afficher un petit message de remerciement (genre pop up). je ne sais pas si les pop up sont faisable en php je n'ai trouvé que du java et j'en ai déjà beaucoup... Smiley decu je joind une image de ce que j'ai en tête.

Merci Smiley lol

http://aquasafaribora.com


<?php 
$nom=$HTTP_POST_VARS['nom']; 
$mail=$HTTP_POST_VARS['mail']; 
$ville=$HTTP_POST_VARS['ville']; 
$message=$HTTP_POST_VARS['message']; 

/////voici la version Mine 
$headers = "MIME-Version: 1.0\r\n"; 
 
//////ici on détermine le mail en format text 
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
 
////ici on détermine l'expediteur et l'adresse de réponse 
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer HP"; 
 
$subject="Aqua Safari - livre d'or français"; 
$destinataire="alley_cat@mail.pf"; 




$body="Nom : {$nom}\nVille : {$ville}\nMessage : {$message}\n"; 
if (mail($destinataire,$subject,$body,$headers)) { 
[#brown]$insertGoTo = "francais/indexfr.php";
	if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
    	$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
		$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
		}
	header(sprintf("Location: %s", $insertGoTo));
} 
[#black]////je n'ai pas trop compris a quoi ca sert toutes ces infos aprés le if(mail...
?>

Modifié par onibaba (08 Sep 2006 - 07:42)
Sur la même page que l'envoie du mail, tu fais juste un simple echo('blablabla'); avec du formatage xhtml dedans.

Par exemple

echo('Merci d'avoir pris le temps de me faire un retour d'information<br />');
echo('Vous allez être redirigé(e) d'ici quelques secondes, si votre navigateur se bloque suivez <a href="lien.html'>ce lien</a>');
echo('<meta http-equiv="refresh" content="5;url=http://ladresse-de-la-redirection" />');

Tu peux aussi en profiter pour générer un message d'erreur.

Tu fais un if (mail...)

Tu inclus ce que je t'ai donné à la suite de ton code, et tu rajoutes un else avec un message d'erreur et une redirection sur ton formulaire. Redirection qui pourrait permettre par exemple de retourner sur le formulaire tel qu'il était avant l'envoi (déjà complété).

Tu peux facilement réinjecter les données à l'aide d'une simple variable booléenne qui te permettra de savoir si il y a eu une erreur lors de l'envoi ou non Smiley smile

Ca peut aussi servir pour contrôler l'état des variables transmises. (vérifier qu'un des champs n'est pas vide, ou que le mail donné est bien un mail par exemple Smiley smile )
Merci Paul

J'avais à peu prés le même genre de code dans le modéle, le probléme c'est que les messages dans les écho ouvrent une nouvelle page, j'aimerai que le message reste dans ma partie centrale (j'ai un haut de page, un menu à droite, un pied de page et un corps central ou j'affiche mes infos (appelé par un include). c'est le genre de chose que j'arrivais a faire avec les frames mais là je bloque un peu... Smiley biggol
comment a partir du code php qui est appelé par le formulaire faire affiché ce popup,même un simple 'message contextuel' Smiley fou

Si tu as la solution... j'essaie de joindre une capture d"ecran..
onibaba a écrit :
Merci Paul

J'avais à peu prés le même genre de code dans le modéle, le probléme c'est que les messages dans les écho ouvrent une nouvelle page, j'aimerai que le message reste dans ma partie centrale (j'ai un haut de page, un menu à droite, un pied de page et un corps central ou j'affiche mes infos (appelé par un include). c'est le genre de chose que j'arrivais a faire avec les frames mais là je bloque un peu... Smiley biggol
comment a partir du code php qui est appelé par le formulaire faire affiché ce popup,même un simple 'message contextuel' Smiley fou

Si tu as la solution... j'essaie de joindre une capture d"ecran..


Pour ne pas briser la forme, tu peux intégrer carrément le code php dans la page du formulaire.

Au clic sur le bouton d'envoie du formulaire, tu recharges la même page en envoyant une variable dans l'url qui te permet de savoir que l'utilisateur vient de soumettre des informations via le formulaire.

Tu places ton code php avant le formulaire. Ce code te permettra d'établir 3 situations.

La première, l'envoie est ok tu affiches les messages d'écho et une redirection sur la page voulu.

La deuxième il y a un problème sur l'envoie et tu réaffiches le formulaire avec les erreurs (par exemple tel champ n'est pas correctement saisie, tel champ est vide..)

La troisième correspond tout simplement à l'affichage du formulaire si la variable présente dans l'url n'existe pas Smiley cligne

Tu vois ce que je veux dire ? Smiley smile
euuuh non je vois pas du tout Smiley mur

J'aurai peu être du dire que je ne connais pas le php Smiley confused j'ai juste trouvé un code simple que j'ai pu modifiér(enlever les champs en trop...). donc quand tu me parles d'une variable dans l'url .. Smiley nut avec trois possibilités............
c'est un peu trop obscur pour moi (surtout a cette heure de la nuit) Smiley decu
onibaba a écrit :
euuuh non je vois pas du tout Smiley mur

J'aurai peu être du dire que je ne connais pas le php Smiley confused j'ai juste trouvé un code simple que j'ai pu modifiér(enlever les champs en trop...). donc quand tu me parles d'une variable dans l'url .. Smiley nut avec trois possibilités............
c'est un peu trop obscur pour moi (surtout a cette heure de la nuit) Smiley decu


Ah ? Québec/Canada ? Smiley lol

Ben c'est pas compliqué.
On peut faire transiter des variables par le biais de l'adresse internet.

Par exemple si ton adresse était comme ça :

http://wwwmonsite.fr/formulaire.php?form=1
le "?form=1" introduit la variable form qui a comme valeur "1"

Pour récupérer cette variable, on utilise l'expression $_GET['form'].
Tu peux tester cette variable grâce au php.

Ce genre de variable peut permettre facilement de recharger une page (ou de naviguer entre plusieurs page) en sachant si il y a eu un envoie de la part de l'utilisateur ou si c'est la première fois qu'ils visionnent la page.

Dans ton cas à toi, il faudrait que dans ta balise "< form >" tu places une adresse de ce type dans le "action="

Mais si t'es trop fatigué(e), il vaut mieux que tu relises tout ça au calme dans la journée. Sinon tu seras pas très productif dans ton code Smiley langue

Nb : Te cognes pas la tête contre les murs pour rester éveillé ! Smiley murf Smiley lol
Merci pour tout paul
Je suis a tahiti..
Comme tu le dis je vais aller faire dormir un peu les yeux et les neurones et reprendrais la chose demain aprés le travail..
Passes une bonne journée et merci.