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 -
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
</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:
- Protection d'un site par un mot de passe [PHP
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Site de telechargement - Accueil - Outils
3 réponses
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:
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;)'
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;)'
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.
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.