Redirection d'une page selon le mot de passe entrer

Résolu
Salut ici, je suis un grand débutant.
J'aimerais un script PHP où lorsque l'utilisateur met un mot de passe il soit redirectioné vers un lien spécifique.

Mon code doit contenir 3 mot de passe.
Lorsque l'utilisateur met par exemple:
1111 il est redirectioné vers site1.com
2222---> site2.com
3333---->site3.com

Voici mon code code, j'ai juste fait le formulaire, aidez-moi svp
<!DOCTYPE html>
<html>
    <head>
            <meta charset="utf-8" />
                    <title>Page protégée</title>
                        </head>
                            <body>
        <form 
                    
                                <input type="password" name="mot_de_passe" />
                                            <input type="submit" value="Valider" />
                                                        
        </form>
    </body>
</html>

2 réponses

  1. Modérateur
    Bonjour,

    Dans ton formulaire il manque les attributs action et method
    <form  method="post" action="ton_script_php.php">
    
    


    Et dans ton_script_php.php
    il faut :
    1 - récupérer la variable issue de ton formulaire
    $password = !empty($_POST['password']) ? $_POST['password'] : NULL;
    


    2 - Utiliser un IF/ELSEIF ELSE ..; ou un SWITCTH pour "tester" la contenu de ta variable
    et donc "choisir" vers quoi rediriger
    Par exemple :
    switch($password ){
    case "111":
       $url = "site1.com";
     break;
    case "222":
       $url = "site2.com";
     break;
    case "333":
       $url = "site3.com";
     break;
     default:
    
     break;
    }
    


    3 - Faire la redirection
    header('location :'.$url);
    exit();
    

    0
    1. Merci pour votre réponse. J'ai essayer mais il y a peut-être erreur dans mon code, voici le code
      <!DOCTYPE html>
      <html>
          <head>
              <title>Mon script php</title>
          </head>
          
          <body>
              <?php
              $password = !empty($_POST['password']) ? $_POST['password'] : NULL;
              
              switch($password ){
      case "111":
         $url = "site1.com";
       break;
      case "222":
         $url = "site2.com";
       break;
      case "333":
         $url = "site3.com";
       break;
       default:
      
       break;
      }
      
      //redirection
      header('location :'.$url);
      exit();
              ?>
          </body>
      </html>
      
      0
    2. Voici l'erreur que ça met "Remarque : Variable non définie : url dans / stockage /ssd3/498/8583498/public_html/po/index.php à la ligne 27

      Avertissement : impossible de modifier les informations d'en-tête - les en-têtes ont déjà été envoyés par (sortie démarrée par / storage / ssd3 / 498/8583498 / public_html / po / index.php: 27) dans /storage/ssd3/498/8583498/public_html/po/index.php à la ligne 27"
      0
    3. Modérateur
      Montres le code complet de ton fichier index php
      0
    4. Pardon, ligne 21
      <?php
      ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);
              $password = !empty($_POST['password']) ? $_POST['password'] : NULL;
              
              switch($password ){
      case "111":
         $url = "site1.com";
       break;
      case "222":
         $url = "site2.com";
       break;
      case "333":
         $url = "site3.com";
       break;
       default:
      
       break;
      }
      
      //redirection
      header('location :'.$url);
      exit();
      ?>
      0
  2. Modérateur
    Je confirme que si on reprend exactement le code que je t'ai donné (et que le fichier est bien en utf8 (sans bom))
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE); 
    ini_set('display_startup_errors', TRUE);
    
     $password = !empty($_POST['mot_de_passe']) ? $_POST['mot_de_passe'] : NULL;
      
      if($password){      
        switch($password ){
          case "111":
             $url = "site1.com";
           break;
          case "222":
             $url = "site2.com";
           break;
          case "333":
             $url = "site3.com";
            break;
          default:
             $url = "index.php";
            break;
        }
        //redirection
        header('Location:'.$url .'?error=password');
        exit();
      }else{
        echo "<br><b>Aucun password renseigné !</b>";
      }
    ?>
    

    cela fonctionne parfaitement...
    0
    1. Merci, ça a marché , mais le problème de redirection cause problème, au fait ça ne fait pas les redirections de façon direct.
      Voici le message d'erreur ''The requested URL /po/site2.com was not found on this server.

      Vous pouvez l'essayer directement sur le site, une fois la redirection fait, vérifier l'URL: https://ubmobyle.000webhostapp.com/po/formulaire.php
      0
    2. La redirection se fait de cette manière monsite/site.com au lieu de faire directement site.com
      0
    3. Mais ça ne cause pas problème puisque je veux faire la redirection vers d'autres fichiers php de mon site.
      0
    4. Modérateur
      Ben oui...
      Si ce sont des sites externes il faut mettre l'url complete... genre https://www.monsite2.fr/
      0
    5. Mon problème est reglé, merci pour votre aide.
      0