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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    496
    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 : 496
    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...

+ 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, 19h20
  2. Réponses: 6
    Dernier message: 08/09/2014, 16h44
  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, 08h18
  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, 12h20
  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, 13h31

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