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
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>
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
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>
secure.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();
}
?>
session.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
 
<?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>