Page protégée par session
Bonjour,
Voici mon soucis, j'ai fais ce code inspiré d'un tuto. L'objectif c'est de pouvoir protéger l'accès à certaines pages d'admin par exemple.
J'ai voulu faire très simple.
Dans une BDD j'ai mes log et pass qui autorise les sessions.
Chaque page protégée vérifie si une session est ouverte. une session ne s'ouvre qu'en passant par une page de login et pass validée par une recherche dans la BDD.
code de la page : afficher_bravo.html
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <?php
session_start();
/*
si la variable de session login n'existe pas cela siginifie que le visiteur
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
echo 'Vous n\'êtes pas autoris´ à acceder à cette zone';
include('login.htm');
exit;
}
else {
?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR">
<html>
<p> Bravo </p>
</html>
<?php
}
?> |
Et bien ce code ne fonctionne pas, il m'affiche toujours Bravo, même si je ne suis pas passé par la page de login et pass avant... donc c'est que le test ne fonctionne pas...
mon fichier :login.htm
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?php
session_start();
?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR">
<html>
<form action="login.php" method='post'>
<table align="center" border="0">
<tr>
<td>Login :</td>
<td><input type="text" name="login" maxlength="250"></td>
</tr>
<tr>
<td>Password :</td>
<td><input type="password"name="pass" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="log in"></td>
</tr>
</table>
</form>
</html> |
Mon fichier : login.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <?php
session_start();
?>
<?
// pensez a ouvrir une connexion vers mysql ici
// voir les exercices dans le menu de droite pour cela.
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '***');
// on sélectionne la base
mysql_select_db('ma_base',$db);
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pwd from tbl_user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
?> |