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
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 } ?>
mon fichier :login.htm
Mon fichier : login.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } ?>
Partager