Bonsoir tout le monde,
Je rencontre actuellement un petit problème dans la conception de mon site web et j'aurais aimé vous demander votre aide, si bien entendu vous avez le temps. Alors voilà le problème, j'essaye simplement de protéger une page via les sessions, cependant la page "protégée" est accessible si l'on tape son nom dans le navigateur, et j'aurai aimé savoir pourquoi, étant donné que selon moi mon code est valide. Voici sans plus attendre le code:
Mon formulaire fait appel à auth.php:
Oui la sécurité n'est pas encore optimale, mais j'y viendrais dès que ce problème est résolu.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 <?php session_start(); $regex1 = "[\^'$()*+<>?#\"{}\\]"; $regex2 = "[\^'$()*+<>?#\"{}\\]"; $id = $_POST['login']; $password = $_POST['password']; $idsql = mysql_escape_string($id); $passsql = mysql_escape_string($password); require('config.php'); if(isset($_POST['login'])) { if(eregi($regex1,$_POST['login']) OR eregi($regex2,$_POST['password'])) { echo 'Pas de caractères spéciaux'; exit; } else { mysql_connect($serveur,$log,$password) OR die('Erreur de connexion mysql'); mysql_select_db($nom_base); $requete="SELECT COUNT(*) FROM Membre WHERE login='".$_POST['login']."' AND password='".$_POST['password']."'"; $res=mysql_query($requete) OR die('Erreur de connexion mysql'.mysql_error()); ; $r=mysql_fetch_row($res); $nb_total=mysql_result($res,0,"count(*)"); if($r[0]==1) { $_SESSION['login']=$_POST['login']; ?> <script language="JavaScript"> document.location.href="admin.php"; </script> <?php exit; } else{ echo '<strong>Erreur:</strong> Vos identifiants n\'ont pas été trouvés dans notre base de données.<br /><br />'; ?> <a href="root.php" title="Retour à la page d'authentification">Retour à la page d\'authentification </a> <?php } } } else { echo '<strong>Erreur:</strong> Vos identifiants n\'ont pas été trouvés dans notre base de donnée.<br /><br />'; ?> <a href="root.php" title="Retour à la page d'authentification">Retour à la page d\'authentification </a> <?php } ?>
Et voilà ma page protégée:
(avec root.php : page ou l'on doit s'identifier).
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 <?php require('config.php'); session_start(); mysql_connect($serveur,$log,$password); mysql_select_db($nom_base); if(!isset($_SESSION['login'])) { header('location:root.php'); exit; } include 'header.php'; include 'addform.php'; include 'footer.php'; ?>
Donc l'identification fonctionne bien, le seul problème est que je peux accéder à admin.php en tapant dans la barre d'adresse, et je ne vois pas pourquoi, étant donné que j'ai mis une condition....
Merci d'avance![]()
Partager