Les Allergies
Alimentaires
Posez votre question Signaler

Protection d'un site par un mot de passe [PHP [Résolu]

Nemo - Dernière réponse le 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
Lire la suite 

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

3 réponses
Réponse
+0
moins plus
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;)'
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
si c'est résolu oublie pas de le noter
Bon cod@ge ;)
Ajouter un commentaire
Ce document intitulé « protection d'un site par un mot de passe [PHP » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?