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

Résolu
Nemo -  
TiboleParano Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   61
 
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
Nemo
 
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   Statut Membre Dernière intervention   61
 
si c'est résolu oublie pas de le noter
Bon cod@ge ;)
0