Afficher et traiter un formulaire sur la même page

jb_lives Messages postés 3 Statut Membre -  
Tomy2e Messages postés 1041 Statut Membre -
Bonjour,

Je cherche à afficher et traiter un formulaire sur la même page. Sauf que mon code me donne une erreur.

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

<input type="password" name="mot_de_passe">
<input type="submit" value="valider">
</form>

<?php
if (!isset($_POST['mot_de_passe']) OR ($_POST['mot_de_passe']!="kangourou"))
{
?>
<form action="formulairecode.php" method="post">
<input type="password" name="mot_de_passe">
<input type="submit" value="valider">
</form>
<?php
}
else if (isset($_POST['mot_de_passe']) AND ($_POST['mot_de_passe']=="kangourou"))
{
?>
<h1>Voici les codes d'accès :</h1>
<p><strong>CRD5-GTFT-CK65-JOPM-V29N-24G1-HH28-LLFV</strong></p>
<?php
}
else
{
echo '<p>Mot de passe incorrect</p>';
}
?>

3 réponses

  1. Tomy2e Messages postés 1041 Statut Membre 864
     
    Bonjour, voici un autre exemple de code possible, un peu plus propre, pour ce que vous voulez faire:
    <?php
    $password = "motdepasse"; // ici le mot de passe
    if(isset($_POST['post_form'])) // Ici la personne a envoyé le formulaire
    {
    if(!isset($_POST['mot_de_passe']) || empty($_POST['mot_de_passe']))
    { // mot de passe non détecté/entré
    $authentication = array("success"=>false, "message"=>"Mot de passe non détecté/entré !");
    }
    else if($_POST['mot_de_passe'] === $password)
    { // mot de passe correct
    $authentication = array("success"=>true, "message"=>"Authentification réussie !");
    }
    else
    {  // mot de passe incorrect
    $authentication = array("success"=>false, "message"=>"Mot de passe incorrect !");
    }}
    ?>
    <form action="" method="post">
    <input type="hidden" name="post_form" value="yep"/>
    <input type="password" name="mot_de_passe">
    <input type="submit" value="valider">
    </form>
    <?php if(!empty($authentication)) { if(!$authentication['success']) { echo $authentication['message']; } else { ?>
    <h1>Voici les codes d accès :</h1>
    <p><strong>CRD5-GTFT-CK65-JOPM-V29N-24G1-HH28-LLFV</strong></p>
    <?php }}?>
    1
  2. varley Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   12
     
    Bonjour jb_lives essai ceci

    <form action="" method="post">

    <input type="password" name="mot_de_passe">
    <input type="submit" name="submit" value="valider">
    </form>

    <?php
    if(isset($_POST['submit'])){
    if (!isset($_POST['mot_de_passe']) OR ($_POST['mot_de_passe']!="kangourou"))
    {
    ?>
    <form action="" method="post">
    <input type="password" name="mot_de_passe">
    <input type="submit" value="valider">
    </form>
    <?php
    }
    else if (isset($_POST['mot_de_passe']) AND ($_POST['mot_de_passe']=="kangourou"))
    {
    ?>
    <h1>Voici les codes d'accès :</h1>
    <p><strong>CRD5-GTFT-CK65-JOPM-V29N-24G1-HH28-LLFV</strong></p>
    <?php
    }
    else
    {
    echo '<p>Mot de passe incorrect</p>';
    }
    }
    ?>
    0
  3. A l a n Messages postés 5758 Date d'inscription   Statut Contributeur Dernière intervention   818
     
    <form action="formulairecode.php" method="post"> 
    
    <input type="password" name="mot_de_passe"> 
    <input type="submit" value="valider"> 
    </form> 
    
    <?php 
    if (!isset($_POST['mot_de_passe']) OR $_POST['mot_de_passe']!="kangourou") 
    { 
    echo '<p>Mot de passe incorrect</p>'; 
    //Si renvoyée mais mot de passe faux
    }
    elseif(!isset($_POST['mot_de_passe']))
    {
    //Si variable non renvoyée
    }
    else if (isset($_POST['mot_de_passe']) AND ($_POST['mot_de_passe']=="kangourou")) 
    { 
    // Si c'est ok
    ?> 
    <h1>Voici les codes d accès :</h1> 
    <p><strong>CRD5-GTFT-CK65-JOPM-V29N-24G1-HH28-LLFV</strong></p> 
    <?php 
    } 
    else 
    { 
    echo"Erreur inconnu";
    } 
    ?>


    Où est l'erreur d'ailleurs ?

    Dépêche toi de vivre, ou dépêche toi de mourir !
    0
    1. A l a n Messages postés 5758 Date d'inscription   Statut Contributeur Dernière intervention   818
       
      Erreur de ma part.
      if (!isset($_POST['mot_de_passe']) OR $_POST['mot_de_passe']!="kangourou") 
      { 
      echo '<p>Mot de passe incorrect</p>'; 
      //Si renvoyée mais mot de passe faux
      }
      else if (isset($_POST['mot_de_passe']) AND ($_POST['mot_de_passe']=="kangourou")) 
      { 
      // Si c'est ok
      ?> 
      <h1>Voici les codes d accès :</h1> 
      <p><strong>CRD5-GTFT-CK65-JOPM-V29N-24G1-HH28-LLFV</strong></p> 
      <?php 
      } 
      else 
      { 
      echo"Erreur inconnu";
      } 
      0