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

A voir également:Redirection d'une page selon le mot de passe entrerProtéger une page web par mot de passe html - Forum - HTML Comment protéger une page en html par un mot de passe en php - Forum - PHP Protéger plusieurs pages par un mot de passe ✓ - Forum - Webmaster Protége page php avec mot de passe ✓ - Forum - PHP Accèder à Une Page Avec Un Mot de Passe ? ✓ - Forum - Internet / Réseaux sociaux

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>

Forum

A voir également:Redirection d'une page selon le mot de passe entrerProtéger une page web par mot de passe html - Forum - HTML Comment protéger une page en html par un mot de passe en php - Forum - PHP Protéger plusieurs pages par un mot de passe ✓ - Forum - Webmaster Protége page php avec mot de passe ✓ - Forum - PHP Accèder à Une Page Avec Un Mot de Passe ? ✓ - Forum - Internet / Réseaux sociaux

Web: www.shapebootstrap.net

2 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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(); 

Reply
réponses:
  • auteur

  • auteur

    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> 

  • auteur

    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 : http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

  • auteur

    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"

  • auteur

    Montres le code complet de ton fichier index php

  • auteur

    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(); ?>

  • auteur

    Dis nous ce que ça donne :

     <?php error_reporting(E_ALL); ini_set('display_errors', TRUE);  ini_set('display_startup_errors', TRUE);   $password = !empty($_POST['password']) ? $_POST['password'] : 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>";   }   ?>  

  • auteur

    Edit ... je n'avais pas vu le name de ton imput

     name="mot_de_passe" 

    il faut donc ajuster le script php:
     $password = !empty($_POST['mot_de_passe']) ? $_POST['mot_de_passe'] : NULL; 

  • auteur

    Voici le code à nouveau, mais ça ne marche pas

    <?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>";   }   ?>

  • auteur

    Attends.....
    Quel est le nom de ton fichier php ???
    car pour l'instant... tu sembles renvoyer ton formulaire sur lui même

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

    Dans le "action" .. il faut indiquer ton chemin php... celui qui doit traiter ton formulaire....

    Il serait bien que tu nous montres le code complet (en indiquant le nom des fichiers dans lesquels tu écris ton code)

  • auteur

    J'ai deux fichiers, Index.php et formulaire.php Voici mon formulaire.php

    <!DOCTYPE html> <html>     <head>         <meta charset="utf-8" />         <title>Page protégée</title>     </head>     <body>         <form method="post" action="index.php">         <input type="password" name="mot_de_passe" /> <input type="submit" value="Valider" />            </form>     </body> </html>

    Et l'URL de test https://ubmobyle.000webhostapp.com/po/formulaire.php

  • auteur

    ok.. et que contient EXACTEMENT (et dans son entièreté.....) le fichier index.php ?

  • auteur

    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>";   } ?> 

  • auteur

    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>";   }   ?>

  • auteur

    donc teste le code que je viens de te donner et colles nous le résultat

  • auteur

    vérifies aussi que tes fichiers sont bien en utf8 sans bom (voir chapitre 1 de ce lien : http://www.commentcamarche.net/faq/47069-html-php-caracteres-accentues-et-l-utf8 )

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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...

Reply
réponses:
  • auteur

    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

  • auteur

    La redirection se fait de cette manière monsite/site.com au lieu de faire directement site.com

  • auteur

    Mais ça ne cause pas problème puisque je veux faire la redirection vers d'autres fichiers php de mon site.

  • auteur

    Ben oui...
    Si ce sont des sites externes il faut mettre l'url complete... genre http://www.monsite2.fr

  • auteur

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

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed