Redirection d'une page selon le mot de passe entrer

Résolu
ananias8686 Messages postés 96 Statut Membre -  
ananias8686 Messages postés 96 Statut Membre -
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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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. ananias8686 Messages postés 96 Statut Membre
       
      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. ananias8686 Messages postés 96 Statut Membre
       
      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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Montres le code complet de ton fichier index php
      0
    4. ananias8686 Messages postés 96 Statut Membre
       
      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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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. ananias8686 Messages postés 96 Statut Membre
       
      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. ananias8686 Messages postés 96 Statut Membre
       
      La redirection se fait de cette manière monsite/site.com au lieu de faire directement site.com
      0
    3. ananias8686 Messages postés 96 Statut Membre
       
      Mais ça ne cause pas problème puisque je veux faire la redirection vers d'autres fichiers php de mon site.
      0
    4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Ben oui...
      Si ce sont des sites externes il faut mettre l'url complete... genre https://www.monsite2.fr/
      0
    5. ananias8686 Messages postés 96 Statut Membre
       
      Mon problème est reglé, merci pour votre aide.
      0