Redirection d'une page selon le mot de passe entrer [Résolu/Fermé]

Signaler
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020
-
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020
-
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

Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020
2 586
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();

Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020
2 586
ok.. et que contient EXACTEMENT (et dans son entièreté.....) le fichier index.php ?
Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020
2 586 >
Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020

Rassures moi... tu as bien retiré le code HTML qu'il y avait dedans comme je te l'avais indiqué ???
Si oui...
essayes ça et dis nous ce que ça t'affiche
<?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');
    echo "<br> Variables POST :<br><pre>";
    print_r($_POST);    
    echo "</pre>";
   echo "<br> URL = " . $url ;
    exit();
  }else{
    echo "<br><b>Aucun password renseigné !</b>";
  }
?>
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020

Voici le code complet de index.php
<?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>";
    echo "<br> Variables POST :<br><pre>";
    print_r($_POST);    
    echo "</pre>";
  }


?>
Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020
2 586 >
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020

donc teste le code que je viens de te donner et colles nous le résultat
Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020
2 586 >
Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020

vérifies aussi que tes fichiers sont bien en utf8 sans bom (voir chapitre 1 de ce lien : https://www.commentcamarche.net/faq/47069-html-php-caracteres-accentues-et-l-utf8 )
Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020
2 586
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...
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020

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
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020

La redirection se fait de cette manière monsite/site.com au lieu de faire directement site.com
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020

Mais ça ne cause pas problème puisque je veux faire la redirection vers d'autres fichiers php de mon site.
Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020
2 586
Ben oui...
Si ce sont des sites externes il faut mettre l'url complete... genre https://www.monsite2.fr/
Messages postés
65
Date d'inscription
samedi 9 février 2019
Statut
Membre
Dernière intervention
29 avril 2020

Mon problème est reglé, merci pour votre aide.