Redirection après envoie du formulaire

Tithomme75 Messages postés 5 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 11 novembre 2008 - 10 nov. 2008 à 17:01
Tithomme75 Messages postés 5 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 11 novembre 2008 - 11 nov. 2008 à 16:35
Bonjour à tous, j'ai un site perso dans lequel j'ai inséré dans la partie "contact" un formulaire pour que le dialogue avec les éventuels visiteurs soit facilité...
Néanmoins je bloque sur la redirection après l'envoie du formulaire (quand le visiteur a cliqué sur le bouton Envoyer")...
J'aimerai savoir si il est possible de renvoyer vers une page si tt est ok (formulaire correctement rempli) et renvoyer sur la page contenant le formulaire si il y a une erreur (un champ a été oublié par exemple).

Je vous donne le code source de mon formulaire, contenu dans la page appelée contact.html :

<form method="post"
 action="contact.php">

                                                     
                              ----

                                                                <table
 style="text-align: left; width: 100%;" border="0"
 cellpadding="2" cellspacing="2">
                                 
                                    ----

                                     , CONTACTEZ-MOI DIRECTEMENT EN REMPLISSANT CE
FORMULAIRE</td>
                                   
                                 
                               

                               

                                                                 
                                    ----

                                      &nbsp;
&nbsp; Nom
:,
                                      ,
                                   
                                    ----

                                      &nbsp;
&nbsp; Prénom :,
                                      ,
                                   
                                    ----

                                      &nbsp;
&nbsp; Email
                                      &nbsp;:,
                                      ,
                                   
                                    ----

                                      &nbsp;
&nbsp; Message
                                      &nbsp;:,
                                      <textarea rows="6"
 name="message" cols="48" row="30"
 style="background-color: rgb(204, 204, 204);"></textarea>,
                                   
                                    ----

                                      ,
                                      ,
                                   
                                 
                               

                               

                                                                 
                                    ----

                                      &nbsp; &nbsp;
(Les champs marqués
d'un &nbsp;sont obligatoires),
                                   
                                 
                               

                                </td>
                              </tr>
                            </tbody>
                          </table>
                         

                        </form>

(Précision les images ne sont pas uploadées ce qui explique un url comme celle indiquée)

Et voici la page contact.php qui traite les infos :

<?php

if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){
   extract($_POST);
   if(!empty($nom) && !empty($email) && !empty($message)){
        $message=str_replace("\'","'",$message);
        $destinataire="chauveau_adrien@hotmail.fr";
        $sujet="Formulaire de contact";
        $message="Une nouvelle question est arrivée \n
        Nom : $nom \n
        Email : $email \n
        Message: $message";
        $entete="From: $nom \n Reply-To: $email";
        mail($destinataire,$sujet,$message,$entete);
        echo "Le mail a bien été envoyé.";
   }
   else{
        echo "Vous n'avez pas rempli tous les champs.";
   }
}
?>

Merci d'avance pour votre aide qui me sera précieuse :-)
A bientôt

3 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 nov. 2008 à 17:29
Salut,

2 solutions s'offrent à toi :
- vérifier le formulaire avant l'envoi en Javascript
- vérifier le formulaire après son envoi, avec PHP.

Dans le premier cas, le formulaire ne sera effectivement envoyé que s'il est correctement rempli. Il faut pour cela une fonction JS qui vérifie les données saisies, et qui renvoie true ou false. Elle doit être appelée dans l'attribut onsubmit de la balise <form>

Dans le second cas, il faut hiérarchiser les fichiers correctement. Il faut séparer le code HTML du script PHP pour pouvoir afficher le formulaire ou non depuis le script PHP.
Pour faire plus simple, tu peux utiliser le même script pour afficher et traiter le formulaire. Simplement, si la variable $_POST est vide, il faut afficher le formulaire. Si elle est remplie, on traite les données. Si pendant le traitement on a une erreur, on réaffichera le formulaire, avec les données correctes pré-remplies.

Voilà, en gros...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
Tithomme75 Messages postés 5 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 11 novembre 2008
10 nov. 2008 à 17:55
Merci neigedhiver pour ta rapide et précise réponse...
Pourrais-tu me dire précisément ce que je dois rajouter et ou je dois rajouter dans mon code car je n'ai pas très bien saisi... La deuxième solution me plait plus que la première dans le sens où les données correctes seront réaffichées.
Avec ta méthode il est donc possible d'afficher une page de remerciements si le formulaire est bon, et si le formulaire ne l'est pas de réafficher la page formulaire (contact.html pour moi) en conservant les champs bons. C'est bien ça?
Merci encore
0
Tithomme75 Messages postés 5 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 11 novembre 2008
11 nov. 2008 à 16:35
Pourriez-vous me venir en aide je suis totalement bloqué... :'(
0
Rejoignez-nous