Utiliser une base de données pour sécuriser vos sessionsDate de publication : 28/08/2006
5. Mise en application des fonctions
5.1. Le Formulaire d'identification
5.2. Les autres pages du site
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 |
if ($ userdata = getUserinfo()) {
openSession($ userdata [ ' id ' ] );
getMsg($ userdata [ ' username ' ] );
} else {
if (! $ _POST ) {
getFormView();
} else {
if (! $ loginCheck = getLoginCheck($ _POST [ ' username ' ] , $ _POST [ ' password ' ] )) {
getFormView();
echo ' pas bon ' ;
} else {
dbClean();
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 à:
- common.php
- index.php
- 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 |
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 |
require_once ' common.php ' ;
if (! empty($ userdata [ ' username ' ] )) {
echo ' Bonjour ' . $ userdata [ ' username ' ] ;
} else {
echo ' Bonjour Anonyme ' ;
}
|
Copyright ©2006 Adrien Pellegrini.
Aucune reproduction, même partielle, ne peut être faite
de ce site et de l'ensemble de son contenu : textes, documents, images, etc
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérets. Cette page est déposée à la SACD.
|