Page php protégée par un mot de passe

Fermé
Factum Messages postés 22 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 9 juillet 2008 - 9 juil. 2008 à 14:54
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 - 23 juil. 2008 à 13:37
Bonjour à tous !
Je suis sur le point de faire un site d'enquête, le but est simple, à chaque page une question est posée, si la réponse est juste, on peut passer à la page suivante. Cependant, on peut tout aussi bien accéder à un autre page en modifiant l'url, j'ai donc voulu protéger chaque page par un mot de code (dévoilé lorsque la réponse est juste). Mais je me retrouve avec un petit problème ...
<?php

if (isset($_POST['mot_de_passe'])) 
{
    
    $mot_de_passe = $_POST['mot_de_passe'];
}
else 
{
    $mot_de_passe = ""; 
}
 
if ($mot_de_passe == "togepi") 
{

?>

<?php

if($_GET['act'] == 'continuer'){
	echo '<div id="apDiv1"></div>
	<div id="apDiv2">
	  <div align="center">
	    <p><img src="images/bulle.PNG" width="321" height="186" /></p>
	     <p><img src="images/yota.PNG" width="98" height="94" /></p>
		<p><form action=".?page=after" method="post">
		<input type="text" name="reponse" /><br />
		<input type="submit" name="repondre" value="Ok !" /></form></p>
	  </div>
	</div>
	<div id="apDiv3"></div>
	<div id="apDiv4"></div>
	<div id="apDiv5"></div>
	<div id="apDiv6">
	  <p align="center">Une petite question pour toi: Dans le film "Blade Runner", combien de réplicants doit trouver et éliminer Deckard ?
	  
	  </p>
	</div>';
	

}
elseif(isset($_POST['repondre'])){
	$verif = Array('cinq', '5');
	$reponse = htmlentities($reponse,ENT_QUOTES);
	if(in_array($reponse,$verif)){
		$paroles = 'Pas mal. Le code pour accéder à la page suivante est "koala", notez le bien !';
		$lien = '<input type="button" value="Continuer l\'aventure" onClick="javascript:document.location.href=\'.?page=hihihi\'" />';
	}
	else{
		$paroles = 'Tu n\'es pas digne d\'avancer';
		$lien = '<input type="button" onClick="javascript:history.back()" value="Retour temporel" />';
	}
	echo '<div id="apDiv1"></div>
	<div id="apDiv2">
	  <div align="center">
	    <p><img src="images/bulle.PNG" width="321" height="186" /></p>
 <p><img src="images/yota.PNG" width="98" height="94" /></p>
		<p>'.$lien.'</p>
	  </div>
	</div>
	<div id="apDiv3"></div>
	<div id="apDiv4"></div>
	<div id="apDiv5"></div>
	<div id="apDiv6">
	  <p align="center">'.$paroles.'</p>
	</div>';
}
else{
	echo '<div id="apDiv1"></div>
	<div id="apDiv2">
	  <div align="center">
	   <p><img src="images/bulle.PNG" width="321" height="186" /></p>
	 <p><img src="images/yota.PNG" width="98" height="94" /></p>
		<p><input type="button" value="Continuer l\'aventure" onclick="javascript:document.location.href=\'.?page=after&amp;act=continuer\'"></p>
	  </div>
	</div>
	<div id="apDiv3"></div>
	<div id="apDiv4"></div>
	<div id="apDiv5"></div>
	<div id="apDiv6">
	  <p align="center">Pompululu ! J\'ai pour ordre de ne pas te laisser passer aussi facilement</p>
	</div>';
}
?>

<?php
}
else 
{

?>
<html>
    <head>
        
       
    </head>
    <body>
<p>Veuillez entrer le code  :</p>
<form action="after.php" method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>

    </body>
</html>
<?php
} 
?>


Voici la structure de mon code, en fait, dès que j'envoie la requête le formulaire de mdp se relance, ce qui est logique, et donc impossible d'avancer. J'aimerai savoir si vous pouviez m'aider à corriger le problème.

Merci d'avance,
Bonne journée !
A voir également:

3 réponses

Bonjour

Pourquoi ne pas plutôt utiliser des variables de SESSION ?

Du style :

if(isset($_SESSION['code'])&&$_SESSION['code']==togepi) 
{ 
     if(isset($_POST['reponse'])&&$_POST['reponse']==(est bonne)) 
     { 
         $_SESSION['code']=="koala" 
         je redirige vers la question suivante 
     } 
     else 
     { 
            je met mon formulaire 
     } 
} 
else 
{ 
      je redirige en premiere page 
}



Je pense que ce serait plus ergonomique pour les personnes qui répondront à tes questions et ce sera tout aussi sécurisé

En espérant t'avoir aidé
0
Merci de mettre ce POST en "problème résolu" si il l'est.

Cordialement
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
23 juil. 2008 à 13:37
Bonjour,

Merci de ne pas faire de pub pour son site.

Cordialement...
0