IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Retour à la page précédente


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 35
    Points : 19
    Points
    19
    Par défaut Retour à la page précédente
    Bonjour à tous,

    Je développe la partie "contact" de mon site internet. Cette partie est composée d'un formulaire d'envoi d'email. Jusque là tout va bien.

    Si le visiteur n'a pas rempli tous les champs désiré, je lui envoie un petit message d'erreur en alert pour lui demander d'y remédier (bin oui quoi, si il met pas son email je saurai jamais le contacter ^^). Jusque là, tout va bien aussi.

    Le problème est lui suivant :
    Après avoir fais apparaitre le message d'erreur, j'aimerais que le visiteur soit redirigé automatiquement sur la page précédente (donc la page du formulaire). J'ai d'abord essayé en le redirigeant directement vers la page contact.html, mais dans ce cas tous les champs du formulaire se retrouvent vidés...

    C'est très embetant si le visiteur a tapé un long message et qu'il doit tout retaper tout ca parcequ'il a oublié de remplir la case "mail".

    Or, si au lieu de le diriger vers une page définie, je le redirigeais vers la page précédente (qui est la meme, on s'entend bien), le formulaire ne se viderait pas.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
     
    if (isset ($_POST) && isset($nom) && isset($prenom) && isset ($mail) && isset($message)){
    if(!empty($mail) && !empty($message)){
     
    $msg = "Nom:\t$nom\n";
    $msg .= "Prenom:\t$prenom\n";
    $msg .= "E-Mail:\t$mail\n";
    $msg .= "Devis:\t$devis\n";
    $msg .= "Question Generale:\t$question\n";
    $msg .= "Message:\t$message\n";
     
    $recipient = "monemail@mail.com";
    $subject = "Question";
     
    mail($recipient, $subject, $msg, $entete);
     
     
    echo "<script language='JavaScript'>alert(\"Votre message a bien été envoyé. Nous vous répondrons au plus vite.\")</script>";
    echo "<script language='JavaScript'>location.href=\"index.html\"</script>";
    }
     
    else{
    echo "<script language='JavaScript'>alert(\"Veuillez remplir tous les champs.\")</script>";
    }
    }
    ?>
    C'est la partie après "else" qui pose problème. Comment le faire revenir là où il était?

    J'espère que je suis clair.

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    pour préremplir le formulaire en cas d'erreur tu peux par exemple mettre les valeur dans un tableau en session. ensuite dans le formulaire tu testes si le tableau existe et tu remplis les valeurs
    cette technique est très pratique pour le visiteur puisqu'en même temps que le remplissage tu peux afficher un message d'aide qui dit par exemple "vous avez oubliez d'indiquer votre adresse e-mail"

  3. #3
    Membre actif Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
         header('Location: Nom_de_la_page.php');//Retour à Nom_de_la_page.php
    ?>
    ça devrais marcher

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 35
    Points : 19
    Points
    19
    Par défaut
    D'abord, merci pour ta réponse et ensuite : "Aouch!"... Oserais-je te demande un petit exemple de code?
    Je suis assez néophyte en PHP et je n'ai aucune idée de comment faire ça.

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 35
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Korri Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
         header('Location: Nom_de_la_page.php');//Retour à Nom_de_la_page.php
    ?>
    ça devrais marcher
    Salut Korri,

    Merci aussi pour ta réponse, mais j'avais déjà essayé ce système et je reçois ceci :

    Warning: Cannot modify header information - headers already sent by

  6. #6
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut
    et un petit coup de JS avec une boite de dialogue alert(), ca ne serait pas plus simple ?
    ca eviterais de recharger la page, avec les valeurs a chaque fois.
    a part si tu veux expressement le faire en php

  7. #7
    Membre actif Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 232
    Points
    232
    Par défaut
    ReBonjour overtrack,

    Pour pouvoir faire un header() il ne faut pas avoir de echo() ou de html avant l'appel à cette méthode.

    Sinon il te faudras ré inclure ton ancienne page ou encore utiliser du javascript pour rediriger l'utilisateur aprés lui avoir affiché l'erreur.

    Bonne journée.

    PS : Comme l'a dit nosferapti si tu veu remettre les valeurs des champs dans le formulaire, il te faudras utiliser les sessions (en cas de redirection).

    EDIT: La solution de DEMMOTTE me parait être quand même plus simple !

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 35
    Points : 19
    Points
    19
    Par défaut
    Merci pour vos réponses, je vais essayer vos suggestions.

    EDIT : Vous êtes géniaux. Merci pour vos conseils, mon script fonctionne à présent. Pour information, j'ai utilisé la solution de DEMMOTTE en utilisant un JS dans la page du formulaire. J'étais focalisé sur la page php et je n'avais absolument pas pensé à cela.
    Encore merci à vous. De bons conseils et rapidement en plus. Pouvais pas rêvé mieux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Retour à la page précédente à partir d'une action
    Par thomzon dans le forum Struts 1
    Réponses: 1
    Dernier message: 17/04/2007, 12h10
  2. empecher le retour à la page précédente
    Par ozzmax dans le forum Langage
    Réponses: 1
    Dernier message: 24/08/2006, 17h28
  3. [PHP-JS] Retour à la page précédente
    Par Attilius dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2006, 18h43
  4. [Configuration] Pb sur le retour à la page précédente...
    Par Sophy75 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 13/04/2006, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo