Bonjour,
je me suis fait un petit programme d'authentification en m'inspirant (+++) d'un exemple, mais malgrès cela, je sèche...
Je crains que j'écrase mes variables, mais bon...si vous avez la gentillesse de regarder mon code...
Mon code est composé de 4 fichiers :
- index.php : première page d'accueil
- verif.php : vérifie le login dans une bdd
- secure.php : fichier à inclure (include) dans chaque page protégée
- session.php : formulaire de session
J'arrive bien à lire dans la bdd et à vérifier l'identifiant enregistré.
Lorsque je suis sur verif.php, j'arrive à atteindre $_SESSION['nom'].
Mais lorsque, je clique sur mon lien pour revenir à index.php, je suis de nouveau rediriger (directive header) vers la page session.php. Cela, comme si j'avais écrasé ma variable $_SESSION['nom']...
Auriez-vous des idées ?
(j'utilise la bdd fournie par neuf/sfr avec mon compte)
index.php
verif.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 <?php session_start(); include('secure.php'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Language" content="fr" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>mon titre</title> <link rel="stylesheet" type="text/css" href="style.css"> </link> </head> <body> <center><a href="un.php"><img src="images/Accueil2.png"></a></center> </body> </html>
secure.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
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 <?php session_start(); if (isset($_POST['id'])){ $nom=$_POST['id']; if(verification($nom)){ session_regenerate_id(); $_SESSION['nom']=$nom; $message='Vous êtes correctement identifié'." $nom"."<a href=\"index.php\"> Rendez-vous à l\'accueil </a>"; }else { $message='Mauvais identifiant'; $message .=' <a href="session.php">Retour</a>'; } }else { $messagees='L\'identifiant est incorrect'; $message .=' <a href="session.php">Retour</a>'; } ?> <?php function verification($nom){ $PARAM_hote='bases.sql'; // le chemin vers le serveur $PARAM_port='3306'; $PARAM_nom_bd='julie-application'; // le nom de votre base de données $PARAM_utilisateur='julie'; // nom d'utilisateur pour se connecter $PARAM_mot_passe='xxx'; // mot de passe de l'utilisateur pour se connecter try { $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); } catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br />'; echo 'N° : '.$e->getCode(); } $nom_sql=$connexion->quote($nom); $sql="SELECT count(*) as nbres FROM utilisateurs " . " WHERE persoid=$nom_sql"; $result=$connexion->query($sql); $row=$result->fetch(); $result=null; if($row['nbres']==1){ return TRUE; }else{ return false; } } ?> <html> <head><title>Identification</title></title> <body> <p> <?php echo "$message "; ?> </body> </html>
session.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php if(!isset($_SESSION['$nom'])){ header('Location: session.php'); exit(); } ?>
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 session_start() ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Language" content="fr" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>titre</title> <link rel="stylesheet" type="text/css" href="style.css"> </link> </head> <body> <p> <img src="images/Accueil.png" alt="Mot de passe" /></p> <form method="post" action="verif.php" > <label for="nom"> Identifiant PERSOID : </label> <input type="text" name="id" > <p><input type="submit" value="s'identifier"></p> </body> </html>
Partager