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

Factum Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   -
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

Profil bloqué
 
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
Profil bloqué
 
Merci de mettre ce POST en "problème résolu" si il l'est.

Cordialement
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Bonjour,

Merci de ne pas faire de pub pour son site.

Cordialement...
0