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

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

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


précédentsommairesuivant

5. Mise en application des fonctions

5.1. 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érer
			// par loginCheck
			openSession($loginCheck);
			$userdata = getUserInfo();
			
			if (empty($userdata)) {
				die('erreur');
			}
			
			getMsg($userdata['username']);
		}
	}
}

5.2. 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 script 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.