Merci pour ton aide et rebonjour,
Voila j'ai donc réussi a créer 2 sessions courantes, que j'ai distingués par le nom (et aussi le nom des variable au passage).
J'ai donc 2 script indépendant pour le logger, et une nouvelle fonction que je met au debut de chaque page (additionner a la 1ere) à la quelle j'ai rajouter la vérification des droits :
voila le code :
Code :
- function page_securite_admin() {
- if(isset($_SESSION['admin_logged'])) {
- if($_SESSION['admin_logged'] == 1) {
- if(isset($_SESSION['admin_ip_client']) && ($_SESSION['admin_ip_client'] == $_SERVER['REMOTE_ADDR'])) {
- if (isset($_SESSION['admin_HTTP_USER_AGENT'])) {
- if ($_SESSION['admin_HTTP_USER_AGENT'] == mhash(MHASH_SHA256, $_SERVER['HTTP_USER_AGENT'])) {
- if(isset($_SESSION['admin_user'])) {
- if($_SESSION['user']->droit == 4) {
- return true;
- }
- }
- }
- }
- }
- }
- }
- return false;
- }
|
Je procede comem ça sur chaque page :
Code :
- session_name('membres');
- session_start(); // Création de la première session
- session_write_close(); // Fermeture de la première session, ses données sont sauvegardées.
- session_name('admin'); // Indication du nom de la seconde session
- session_start(); // Ouverture de la seconde session
- if(!page_securite()) { // Vérification de la 1ere session
- header("Location:".$racine_relatif."/erreur.php?error=6" );
- die();
- }
- else if(!page_securite_admin() || $_SESSION['user']->droit != 4) { // Verification de la session admin
- header("Location:".$racine_relatif."/erreur.php?error=6" );
- die();
- }
- else { // affichage de la page
|
maitenanent ça fonctionne, (par contre je c'est pas si c'est vraiment la meilleur façon de procéder).
par contre, j'ai un problème pour la deconnexion, je souhaiterai faire sauter la session admin, sans faire sauter la 1ere.
Pour eviter de vider toutes les variables sessions j'ai juste supprimé les principales avec unset. Pour la session
j'ai fait ça : session_destroy('admin');
mais ça a pa l'air de marcher.
Pourriez vous meclairer s'il vous plais ?