Version complète: sur le forum Webmaster Hub : Problème de formulaire avec Combo box !
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
tungsten
Bonjour,

je viens de tester un formulaire ou plutôt adapter "envoi.php" à mon formulaire perso, et cela fonctionne très très bien ! Bravo pour cette simplicité et clarté de compréhension dans le code.
Cependant j'aimerai de l'aide par rapport à mon formulaire, car lorsque je sélectionne le champ Piscine, j'ai un lien url automatique qui ne me laisse pas le temps de valider mon formulaire, c'est embêtant !!
D'autre part comment faire pour rediriger le client vers une autre page, une fois le formulaire validé ??
D'avance un grand merci pour une éventuelle aide, je sais qu'il ne doit me manquer grand chose mais je ne vois pas ?!!

Formulaire

CODE
<?php

//déclaration des variables//

$nom=$HTTP_POST_VARS['nom'];

$mail=$HTTP_POST_VARS['mail'];

$message=$HTTP_POST_VARS['message'];

$pays=$HTTP_POST_VARS['Pays'];

$villes=$HTTP_POST_VARS['Villes'];

$piscines=$HTTP_POST_VARS['Piscines'];



//headers//

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";

$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";



//destinataire//

$destinataire = "tungsten_AT_wanadoo.fr";



//objet//

$objet = "$themes";



//message//

$corps = "\n";

$corps .= "noms : $nom \n";

$corps .= "email : $mail \n";

$corps .= "message : $message \n";

$corps .= "pays : $Pays \n";

$corps .= "villes : $Villes \n";

$corps .= "piscines : $Piscines \n";



//verification des champs obligatoires//

if ($nom == "" || $mail == "" || $message == "" || $Pays == "" || $Villes == "")

{

echo "Certains des champs obligatoires n'ont pas été renseignés, veuillez recommencer...<a href='java script:history.go(-1)'>Retour</a>";

}//si champ manquant envoi d'un message avec un bouton retour//

else

{

echo "Merci, votre formulaire nous est bien parvenu, nous vous repondrons dans les plus brefs delais !";

mail($destinataire,$objet,$corps,$headers);

}//si champ ok envoi//

?>
astrofiles
J'avoue ne pas bien comprendre ce qui ne fonctionne pas sur ton formulaire (je viens d'aller sur ton lien ) , as tu plus de précision stp ?

Pour rediriger l'utilisateur le plus propre est l'utilisation de l'instruction header en php
http://fr.php.net/header

tu peux le faire également via le meta refresh en html ou bien encore en javascript avec un windows.location..... smile.gif
tungsten
Plus simplement, je viens tout juste de réussir à installer une redirection dans mon fichier envoi.php, et cela fonctionne très bien !

seulement le problème c'est que la redirection fonctionne même si les champs obligatoires n'ont pas été remplis,
ce qui signifie que lorsque le message d'erreur indiquant au client de revenir en arrière pour corriger les champs oubliés, eh bien 3 secondes après, la redirection s'enclenche également !!
Le client perd donc le contact avec le formulaire et perd tout son contenu !
je pense que cela doit-être une histoite de header("Refresh: 3; URL=./admin.php"); mal placé ?

Formulaire test

Envoi.php

remerciements.php

Dernier détail, j'ai remplacé dans envoi.php :
echo "Merci, votre formulaire nous est bien parvenu, nous vous repondrons dans les plus brefs delais !";

par

echo ("URL=./remerciements.php");

Mais le message contenu dans remerciements.php ne s'affiche pas ??!
Aurais-je encore oublié un détail ?

Merci pour tout...
captain_torche
Je pense qu'un include de la page fonctionnerait mieux :
CODE
<?php
include('remerciements.php');
?>
tungsten
Oui c'est parfait !!
merci pour ton aide.
Il ne me reste plus qu'à gérer le problème de redirection qui s'effectue même si les champs obligatoires n'ont pas étés remplis.
C'est sûrement une histoire de condition mais comment l'écrire ??...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.