Page 1 sur 1

Protection d'une page ?

Posté : 27 août 2006, 17:02
par Invité
Bonjour,
J'ai une page à protéger, mais la page de vérification en cas de bon mot de passe, me renvoie à l'authentification, je ne comprend pas pourquoi ?
authentification
<html>
<head>
<style>
#un {	padding:30px; }
.input {  left:right; }
#login_pass {	position:relative; text-align:right; margin-right:700px; }
#ok { 	position:relative; margin-left:190px; }
</style>
</head>
<?php 
//session_destroy();
unset($_SESSION);
echo $_SESSION['nom']; 
print '<br />session '.print_r($_SESSION);
?>
<body>
<h3>Veuillez vous connectez s'il vous plait.</h3>
<form  id="un" action="http://creatif-web.be/developpeur/admin/verif.php" method="GET">
<div id="login_pass">login <input class="input" type="text" size="20" name="pseudo" /><br /><br>
Mot de passe <input class="input" type="password" size='20' name="mot_de_passe" /><br /></div>
<p id="ok"><input type="submit" value="OK >>" /><p>
</form>
<body>
</html>
Sa renvoie donc sur la page de vérification ou se trouve le script php, qui détermine le bon mot de passe
<?php
session_start();
if(isset($_GET['pseudo']) && isset($_GET['mot_de_passe'])) {
    // on les récuperes
    $nom=$_GET['pseudo'];
    $mot_de_passe=$_GET['mot_de_passe'];
    // on teste si le mot de passe est valide
    if(verification($mot_de_passe, $nom) === true) {
    // le mot de passe est valide, l'user est identifdié
    // on change l'identifiant de session
    echo session_regenerate_id();
    // on sauvegarde le nom dans la session
    $_SESSION['nom']= $nom;
    header ('location:http://creatif-web.be/developpeur/admin/admin_accueil.php');
    //$message= 'vous êtes corectement identifié, merci.';
	/*    $js="<form>
	<input type=button value='Page précédente' onclick='history.go(-3);' />
	</form>";
	echo $js;*/
    }
     else 
	{
	  // sinon on avertis l'utilisateurs
	  $message="Mauvais mot de passe";
	  //$message.=" <a href=\"espace_secu.php\">retour</a>";
  	}
} 
else 
{ 
   $message="Le login ou le mot de pass est vide";
   //$message.=" <a href=\"espace_secu.php\">retour</a>";
}
function verification($mot_de_passe, $nom) 
{
    if($nom=='xavier' && $mot_de_passe=='xav') 
    {
        return true;
    } 
    else 
    { 
        return false;
    }
}
?>
<html>
<head>
<style>
#un {
    padding:30px;
}
.input {
    left:right;
}
</style></head>
<body>
<html>
<h3>Veuillez vous connectez s'il vous plait.</h3>

<?php print $message.'<br />'.print_r($_SESSION); ?>

<form  id="un" action="http://creatif-web.be/developpeur/admin/verif.php" method="GET">
<p>login <input class="input" type="text" size="50" name="pseudo" />
</p>
<br /> 
Mot de passe <input class="input" type="password" size='50' name="mot_de_passe" /> 
<br />
<input type="submit" value="Valider" />
</form>
<body>
</html>
dans chaque page à protéger j'insère un test
<?php
session_start();
// on vérifie si l'user c'est identifié.
if (!isset($_SESSION['pseudo'])){
// la variable de session n'existe pas
// donc l'user n'est pas authentifier
// on redirige sur la page permettant de s'authentifier
header('location:http://creatif-web.be/developpeur/admin/auth.php');
// on arrête l'execution.
exit();
}
include_once ("http://creatif-web.be/developpeur/admin/inc_admin/admin_entete.php");
include_once ("http://creatif-web.be/developpeur/admin/inc_admin/admin_menu.php");
?>
<h2 id="">Login</h2>
<?php
			##############Jour en français
	setlocale(LC_TIME, "fr");
	$date=strftime("%A %d %B %Y");
	echo "<p class='date'>le ".$date."</p>";
 ?>
</body></html>
D'avance merci

Posté : 27 août 2006, 18:36
par iclo
Il faut essayer d'isoler le problème, en faisait des echo ou des print des variables aux différentes étapes d'exécutions, notamment la variable qui est passée en paramêtre à la fonction de vérificatio.