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 :

[Formulaire] Effectuer une action sur la même page selon une condition


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Par défaut [Formulaire] Effectuer une action sur la même page selon une condition
    Bonjour à tous !
    Bon je sens que dès le titre certain vont se dire :"ooouuuhlaaa C quoi ce truc...!"
    Je ne vous cache pas que je cherche à trouver depuis ce matin, je suis débutant en php et la je comprends plus rien !
    Je souhaite juste changer la couleur de ma zone de saisie "password" en rouge si le code est faux, sans changer de page.
    Alors je viens à votre aide, j'ai remis au propre mon petit bout de 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    if (isset($_POST['password'])) // Si la variable existe
    {
        $mot_de_passe = $_POST['password'];
    }
    else 
    {
        $mot_de_passe = ""; 
    }
     
    if ($mot_de_passe == "mdp")
    {
    ?>
     
     
            <h2>Voici les codes d'accès :</h2>
            <h3>CRD5-GTFT-CK65-JOPM-V29N-24G1-HH28-LLFV</h3>
     
     
    <?php
    }
    else
    {
    ?>
     
     
     
    Veuillez entrer le mot de passe :</p>
    <form action="protection.php" method="post">
    <p>
    <input type="text" name="password" />
    <input type="submit" value="Valider" />
    </p>
    </form>
    </body>
    </html>
    <?php
    }
    ?>
    J'ai essayé plein de choses différentes sans jamais arrivé à un résultat voulu.
    Heeeeeelp !
    Merci d'avance.

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Par défaut
    Pour que l'action s'éxécute sur la même page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="<?php $PHP_SELF;?>" method="post">

  3. #3
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 499
    Par défaut
    Voilà en gros ce que tu veux :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <style>
    .erreur {
        color:#FF0000;
        }
    </style>
     
    <?php
    $afficher_le_formulaire = "yes"; // On affiche le formulaire
     
    if (isset($_POST['go'])) { // Si on clique sur le bouton (la variable go existe)
     
        if ($_POST['password'] == "mdp") {
     
            $afficher_le_formulaire = "no";
    ?>
            <h2>Voici les codes d'accès :</h2>
            <h3>CRD5-GTFT-CK65-JOPM-V29N-24G1-HH28-LLFV</h3>
     
    <?php    
        }
     
        else {
     
            $afficher_le_formulaire = "yes";
    ?>        
            <div class="erreur">Mot de passe invalide</div>
     
    <?php
        }
     
    }
    ?>
     
     
     
     
     
    <?php
    if ($afficher_le_formulaire == "yes") {
    ?>
    Veuillez entrer le mot de passe :</p>
    <form action="protection.php" method="post">
    <p>
    <input type="text" name="password" />
    <input type="submit" name="go" value="Valider" />
    </p>
    </form>
    </body>
    </html>
    <?php
    }
    ?>

  4. #4
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="<?php $PHP_SELF;?>" method="post">
    <input type="text" name="password" <?php if(isset($_POST['password'])&&($_POST['password']!="pwd")) echo"style='background-color:red'"/>
    <input type="submit" value="Valider" />
    </form>

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Par défaut
    Merci infiniment à tous pour vos réponses !!

    J'ai essayé de parvenir à qqchose, je suis satisfait du résultat mais à mon avis mon code est sale... Bref ! Je me débrouillerai pour ça.

    La seule chose qu'il me manque est la suivante :
    Je souhaiterais, au moment ou le code tapé par l'internaute est faux, conservé dans la zone de saisie ce que cette personne a saisi. Est ce possible ? Ainsi il peut voir sa faute.

    Le 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?php
    $afficher_le_formulaire = "yes";
    ?>
     
    <?php
    $mot = $_POST['password'];
     
    if ($mot == "mdp") // Si le mot de passe est bon
    {
    ?>
            <h2>Voici les codes d'accès :</h2>
            <h3>CRD5-GTFT-CK65-JOPM-V29N-24G1-HH28-LLFV</h3>
    <?php
    }
    ?>
     
    <?php
    if ($mot != "mdp") // Si le mot de passe est bon
    {
    $afficher_le_formulaire = "yes";
    ?>
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Page protégée par mot de passe</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        </head>
        <body>
    <p>Veuillez entrer le mot de passe :</p>
    <form action="<?php $PHP_SELF;?>" method="post">
    <input type="text" name="password" style="border-width:1px"<?php if(isset($_POST['password'])&&($_POST['password']!="mdp"))
    																echo"style='border-color:red'";
    																else echo"style='border-color:blue'";?>/>
    <input type="submit" value="Valider" /><br><br>
    <?php if(isset($_POST['password'])&&($_POST['password']!="mdp"))echo"<font color=ff0000>Votre mot de passe est erroné !</font>";?>
    </form>
    </body>
    </html>
     
    <?php
    }
    ?>
    Merci d'avance.
    Fab.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 28
    Par défaut
    Il te suffit de rajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value="<?=$_POST['password']?>"
    dans ta balise <input /> du password

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input type="text" name="password" style="border-width:1px"
    <?php
    if(isset($_POST['password'])&&($_POST['password']!="mdp"))
    echo"style='border-color:red'";
    else echo"style='border-color:blue'";
    ?>
    value="<?=$_POST['password']?>" />
    je pense que suppr ton code php de la balise serai bien et le mettre avant, dans une variable, et juste avoir a mettre ta variable.
    Ca sera plus lisible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    if(isset($_POST['password'])&&($_POST['password']!="mdp"))
    $style = ";border-color:red";
    else $style = ";border-color:blue";
    ?>
     
    <input type="text" name="password" style="border-width:1px<?=$style ?>" value="<?=$_POST['password']?>" />

  7. #7
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Par défaut
    Merci pour votre réponse Stolcker !
    Le problème est que j'ai essayé votre solution qui me parait tt à fait logique, mais une fois dans l'explorer il me marque dans la zone de saisie : "<?=$_POST['password']?>" au lieu de la valeur du post.
    Alors la...

  8. #8
    Membre confirmé Avatar de Archibald_Teepo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut
    Peut-être comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php echo $_POST['password'] ?>

  9. #9
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Par défaut
    Yes merci à tous !
    Merci aussi à Archibald, en fait je venais de trouver le bon fonctionnement aussi en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value="<?php echo $mot?>"
    Puisque cette variable est deja déclaré plus haut.
    Tt simplement ! Et ça fonctionne.
    Trop bien le php ! (je sais que certains vont se dire que je suis fou mais comme je découvre petit à petit ce langage je trouve ça magnifique ce qu'il est possible de faire...)
    Je pense que je reviendrai vous posez qqes questions d'ici peu pour finaliser mon projet, en tt cas merci à vous !

  10. #10
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Le problème : tu affiche ce qui devrai être interprété.
    En voyant ton code on voit que ton input est en dehors de <?php ?>.
    Donc solution simpliste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    if(isset($_POST['password'])&&($_POST['password']!="mdp"))
    $style = ";border-color:red";
    else $style = ";border-color:blue";
    //Pas ici ?>
     
    echo('<input type="text" name="password" style="border-width:1px'.$style.'" value="'.$_POST['password']'." />');
    ?>//Plutot là
    [Edit]
    Arf ouned.

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

Discussions similaires

  1. Afficher une image sur la même page en cliquant sur un lien
    Par phenix1988 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 31/10/2019, 20h20
  2. Réponses: 6
    Dernier message: 08/09/2014, 17h44
  3. Affichage du résultat d'une requête sur la même page html
    Par hanadi_09 dans le forum Développement Web en Java
    Réponses: 9
    Dernier message: 24/10/2010, 09h18
  4. faires des actions sur la même page
    Par fraisa1985 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/08/2009, 13h20
  5. [PHP 5.2] Formulaire e-mail traité sur la même page
    Par oupsla dans le forum Langage
    Réponses: 3
    Dernier message: 06/04/2009, 14h31

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