Protection d'un site par un mot de passe [PHP

Résolu/Fermé
Nemo - 12 août 2009 à 13:21
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 - 12 août 2009 à 14:35
Bonjour,
</gras>je créé un site que je souhaite protéger par un mot de passe avec une session.
quand l'utilisateur s'identifie, il est redirigé vers la page principale du site donc voici le corps :</gras>

<?php
session_start();

include("config/connect_jemos.php");

if ( isset($_SESSION["acces"]) ) {}//si la variable existe il a le droit

else
{
header("Location: index_err.php");
die();
}

?>
.
.
.
.

<?php

<a href='?page=home'>Acceuil</a>

if (isset($_GET["page"])) $page = $_GET["page"];
else $page = "home";


switch ($page)
{
case "home" : include("home.php"); break;
}

?>


ce code me permet d'inclure des pages à chaque fois que je clique sur un lien.
Voici le code de la page connect_jemos.php

<?php
session_start();

//---Procédure d'identification---//

//--connection SQL--//

include("config/connect_bd.php");

//Récupération des paramètres

$login=$_POST["login"];
$pass=$_POST["pass"];
$crypt_pass=md5($pass);


//on regarde dans la base de donnée si les login et mots de passes correspondent
$requete="SELECT login, pass FROM jemos_acces WHERE login='$login' AND pass='$crypt_pass'";

$reponse=mysql_query($requete);

$infos=mysql_fetch_array($reponse);

if ( ($login == ($infos['login'])) && ($crypt_pass == ($infos['pass'])) )
{
//si l'identification a marché on créer une variable de session
$_SESSION["acces"] = TRUE ;
}
else
{
// sinon on redirige vers une page d'erreur
header("Location: index_err.php");
}

mysql_close();
?>

Le problème est que si je clique sur acceuil par exemple, je suis redirigé vers la page d'erreur index_err.php, comme si ma variable de session avait disparue. Je ne comprend pas.
Pouvez-vous m'aider.
merci de vos réponses
A voir également:

3 réponses

TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
12 août 2009 à 13:43
Donne un peu le code de la page d'acceuil pour voir
erreur d'othographe ? "access" devien "aces"
sinon l'erreur peut être dans le test du login ou dans la requete sql:

$login == ($infos['login']) && ($crypt_pass == ($infos['pass'])
pour tester s'il reconnait bien login et mdp, rajoute ce code:

{ 
//si l'identification a marché on créer une variable de session 

?><script language="javascript>
alert('test-login ok ;)');
</script><?php

$_SESSION["acces"] = TRUE ; 
}

c'est du javascript et si ton script php rentre bien dans l'accolade du login, il t'ouvrira une boite de dialogue 'test-login ok;)'
1
je viens de comprendre,

en fait de l'index, on se redirigeait vers acceuil.php (avec le formulaire) et on incluait la procédure d'identification. les variables du formulaires n'étaient pas des variable de session. et donc à chaque fois qu'on cliquaut sur un lien dans la page d'acceuil, il testait pour se loger, comme les données du form avaient disparues, il redirigeait vers acceuil.

J'ai fait en sorte que après validation il dirige vers "connect_jemos.php" qui redirige ou pas vers acceuil. je vais voir si ça marche...

c'est pas évident de manipuler les variables de session.
0
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
12 août 2009 à 14:35
si c'est résolu oublie pas de le noter
Bon cod@ge ;)
0