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 :

probleme avec un formulaire à verifier


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut probleme avec un formulaire à verifier
    Bonjour,

    est ce que quelqu'un à un idée se pourquoi ça ne marche pas ?

    index.php

    <?php
    session_start();
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>ChiGé²Phy - Ajout d'une activité dans l'agenda</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="../agenda.css" rel="stylesheet" type="text/css">
    </head>

    <body>
    <?php
    require_once("aff_verif_form.php");
    echo "<h1>Ajout d'une activité dans l'agenda</h1>\n"
    ."<div class=\"tout\">\n";

    if (!isset($_POST['poste'])) {
    echo "<br> premier affichage <br> ";
    aff_verif_form();
    }else{
    echo "<br> xieme affichage <br> ";
    /* if ($_SESSION['erreur']){
    aff_verif_form();
    }else{
    echo "<br> OK";
    } */
    }
    echo "</div>\n";
    ?>
    </body>
    </html>
    aff_verif_form.php
    <?php

    function aff_verif_form() {

    $_SESSION['erreur'] = FALSE;

    echo "<form action=\"index.php\" method=\"post\">\n"
    ."Nom : <input name=\"qui\" type=\"text\" size=\"40\" maxlength=\"50\" value=\"\"<br>" ;

    if ( (isset($_POST['poste'])) AND (empty($_POST['qui']) ) ) {

    $_SESSION['erreur'] = TRUE;
    echo "<br> <span class=\"mess_erreur\"> L'organisateur doit etre spécifié ! </span>\n";
    }

    echo "<input name=\"poste\" type=\"hidden\" value=\"true\">\n"
    ." <input name=\"\" type=\"reset\" value=\"effacer\">&nbsp;<input name=\"\" type=\"submit\" value=\"envoyer\"><br>\n"
    ." </form>\n";

    }

    ?>
    merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    si tu nous disait plutot ce qui ne vas pas se serait plus simple.

  3. #3
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Citation Envoyé par Dokho1000
    si tu nous disait plutot ce qui ne vas pas se serait plus simple.
    C'est pas faux :-)

    Si j'introduis la première fois quelque chose dans le champ texte, il voit une erreur.


    [FONT=&quot]Si j'envoie d'abord le formulaire sans remplir le champ il voit bien une erreur(ce qui est correcte). Et si la 2eme fois je remplis avant d'envoyer il ne voit pas d'erreur (ce qui est correcte) Mais si la 2eme fois j’envoie sans remplir, il ne voit pas d’erreur…

    J'ai l'impression qu'il voit une erreur ou pas en fonction de ce que j'ai envoyer la fois d'avant...

    Ca fait deux jours que je m'arrache les cheveux là dessus [/FONT]

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Par défaut
    Poste nous l'erreur pour voir.Je pensais au isset manquant mais tu les a mis.

  5. #5
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Citation Envoyé par Steph82
    Poste nous l'erreur pour voir.Je pensais au isset manquant mais tu les a mis.
    Je n'ai pas d'erreur à l'exécution mais le comportement n'est pas celui attendu : réaffichage en cas de nom remplissage du champ et message 'OK' si champ rempli.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Par défaut
    Oui j'ai compris après.

    Essaie ça pour voir ce qui se passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             if (( (isset($_POST['poste'])) AND (empty($_POST['qui']) ) ) || (!isset($_POST['qui']))){

  7. #7
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Citation Envoyé par Steph82
    Oui j'ai compris après.

    Essaie ça pour voir ce qui se passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             if (( (isset($_POST['poste'])) AND (empty($_POST['qui']) ) ) || (!isset($_POST['qui']))){
    Pareil, au niveau de la fonction le message d'erreur apparaît bien quand il faut (Mais au premier appel avec ta condition)

    Mais au niveau du « main », je récupère la présence ou pas d’erreur de l’envoie précédent …

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Salut,

    Essaie ca (pas testé) dans function aff_verif_form():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( (isset($_POST['poste'])) AND (empty($_POST['qui']) ) ) 
        {
         $_SESSION['erreur'] = TRUE;
         }
    => si un post a été fait , on vérifie si 'qui' a été renseigné.

    Puis dans ton index.php:
    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
     
    if (!isset($_POST['poste'])) 
       {
       echo "<br> premier affichage <br> ";
       aff_verif_form();
       }
    else {
          echo "<br> xieme affichage <br> ";
          aff_verif_form();
           if (!$_SESSION['erreur'])
                {
                 echo "<br> <span class=\"mess_erreur\"> L'organisateur doit etre spécifié ! </span>\n";
                }
           else{
                 echo "<br> OK";
                 }
            }
    => il vérifie 'erreur' si c pas le premier affichage.

  9. #9
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Citation Envoyé par billoum
    Salut,

    Essaie ca (pas testé) dans function aff_verif_form():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( (isset($_POST['poste'])) AND (empty($_POST['qui']) ) ) 
        {
         $_SESSION['erreur'] = TRUE;
         }
    => si un post a été fait , on vérifie si 'qui' a été renseigné.

    Puis dans ton index.php:
    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
     
    if (!isset($_POST['poste'])) 
       {
       echo "<br> premier affichage <br> ";
       aff_verif_form();
       }
    else {
          echo "<br> xieme affichage <br> ";
          aff_verif_form();
           if (!$_SESSION['erreur'])
                {
                 echo "<br> <span class=\"mess_erreur\"> L'organisateur doit etre spécifié ! </span>\n";
                }
           else{
                 echo "<br> OK";
                 }
            }
    => il vérifie 'erreur' si c pas le premier affichage.

    Oui mais là, en cas d'erreur ds le formulaire, il va m'afficher un message d'erreur sans me reproposer le formulaire ... Ce n'est pas le but recherché

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Juste, désolé.

    essaie en séparant l'affichage et la vérification en 2 fonctions:
    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
     if (!isset($_POST['poste'])) 
       {
       echo "<br> premier affichage <br> ";
       aff_form();
       }
    else {
          echo "<br> xieme affichage <br> ";
          verif_form();
           if (!$_SESSION['erreur'])
                {
                 aff_form();
                 echo "<br> <span class=\"mess_erreur\"> L'organisateur doit etre spécifié ! </span>\n";
                }
           else{
                 echo "<br> OK";
                 }
            }

  11. #11
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    pareil...

    Si je teste la valeur de $_SESSION['erreur'] à la fin de la fonction j’ai le même problème, j’ai le résultat de l’envoi précédent…

    Pareil si j’utilise une variable locale plutôt qu’une variable de session…

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    je m'étais trompé dans la condition de index.php, , c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            if ($_SESSION['erreur'])
    A la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            if (!$_SESSION['erreur'])

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Citation Envoyé par vingtcent
    Si je teste la valeur de $_SESSION['erreur'] à la fin de la fonction j’ai le même problème
    Juste une ptite question, tu as bien séparé aff_verif_form() en 2 fonctions?

  14. #14
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Citation Envoyé par billoum
    je m'étais trompé dans la condition de index.php, , c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            if ($_SESSION['erreur'])
    A la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            if (!$_SESSION['erreur'])
    J'avais corrigé

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    T'as réussi ou pas????

    J'ai testé chez moi et ca fonctionne...

  16. #16
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Citation Envoyé par billoum
    T'as réussi ou pas????

    J'ai testé chez moi et ca fonctionne...
    Non ca ne marche pas, pas chez moi (chez ovh) en tous cas

  17. #17
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Citation Envoyé par billoum
    Juste une ptite question, tu as bien séparé aff_verif_form() en 2 fonctions?
    non... pourquoi ?

  18. #18
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Citation Envoyé par vingtcent
    non... pourquoi ?
    Je crois que j'ai compris le probleme, je travaille dessus demain et je vous tiens au courrant

  19. #19
    Membre averti
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Ca marche !

    Merci à billoum

    v

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

Discussions similaires

  1. php : probleme avec mon formulaire
    Par rane dans le forum Langage
    Réponses: 39
    Dernier message: 29/06/2006, 20h13
  2. Réponses: 2
    Dernier message: 27/06/2006, 14h34
  3. Probleme avec un formulaire html
    Par SarahT dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 05/06/2006, 13h47
  4. Probleme avec mes formulaire html dans mes pages web
    Par foungnigue dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/12/2005, 19h07
  5. Probleme avec un formulaire!
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 14/12/2005, 11h18

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