IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Utiliser une base de données pour sécuriser vos sessions


précédentsommairesuivant

V. Mise en application des fonctions

V-A. Le formulaire d'identification

Nous avons désormais tout le nécessaire pour écrire le script général qui va vérifier d'abord si une session existe et ensuite si elle est enregistrée dans la base de données. Si aucune session n'est présente dans la base de données, le formulaire sera affiché.
Quand le couple username/password est correct, on enregistre la session dans la base de données (après avoir supprimé la session existante).

Script général
Sélectionnez
if ($userdata = getUserinfo()) {
    openSession($userdata['id']);
    getMsg($userdata['username']);
} else {
    if (!$_POST) {
        // Affiche le formulaire
        getFormView();
    } else {
        // Vérifie si le couple username/password est correct
        if (!$loginCheck = getLoginCheck($_POST['username'], $_POST['password'])) {
            // On réffiche le form
            getFormView();
            echo 'pas bon';
        } else {
            // On nettoie la db
            dbClean();
            
            // On initialise la session avec le userid récupéré
            // par loginCheck
            openSession($loginCheck);
            $userdata = getUserInfo();
            
            if (empty($userdata)) {
                die('erreur');
            }
            
            getMsg($userdata['username']);
        }
    }
}

V-B. Les autres pages du site

Le but des sessions étant de garder les informations d'une page à l'autre, pour récupérer ces informations, on devra désormais faire appel à la fonction getInfoUser().
Par exemple, si vous avez une architecture du site qui ressemble à :

  1. common.php
  2. index.php
  3. test.php

Avec common.php qui va inclure tous les scripts nécessaires en haut de chaque page.
index.php qui contiendra le formulaire d'identification.
Et test.php que je vais vous expliquer ci-dessous.

Pour récupérer les informations contenues dans la session vous devez, comme je l'ai mentionné plus haut, utiliser la fonction getUserInfo() de cette façon-ci dans common.php :

common.php
Sélectionnez
if (!$userdata = getUserInfo()) {
    $userdata = array();
}

Grâce à cette ligne, vous pourrez avoir toutes les informations que vous voudrez simplement en incluant le fichier common.php.
Par exemple, le fichier test.php :

test.php
Sélectionnez
require_once 'common.php';

if (!empty($userdata['username'])) {
    echo 'Bonjour '.$userdata['username'];
} else {
    echo 'Bonjour Anonyme';
}

précédentsommairesuivant

Copyright © 2006 Adrien Pellegrini. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.