Redirection d'une page selon le mot de passe entrer

Résolu
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -  
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -
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>
A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Oui il y a une erreur....
Tu dois placer ton code php AVANT tout le reste.... surtout que pour le coup... le code html est totalement inutile dans ce fichier...

Au passage, je t'invite fortement à lire ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
0
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Montres le code complet de ton fichier index php
0
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
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
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
La redirection se fait de cette manière monsite/site.com au lieu de faire directement site.com
0
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
Mais ça ne cause pas problème puisque je veux faire la redirection vers d'autres fichiers php de mon site.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ben oui...
Si ce sont des sites externes il faut mettre l'url complete... genre https://www.monsite2.fr/
0
ananias8686 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
Mon problème est reglé, merci pour votre aide.
0