conteneur = $conteneur == null ? new Conteneur() : $conteneur; $this->conteneur->chargerConfiguration('config_utilisateurs.ini'); $this->gestionBdd = $conteneur->getGestionBdd(); $this->bdd = $this->gestionBdd->getBdd(); $this->demarrerSession(); } private function demarrerSession() { if(session_id() == '') { // modifier ce test lors du passage en php 5.4 session_start(); } } protected function getUtilisateurAnonyme() { return array('connecte' => false, 'id_utilisateur' => session_id(), 'courriel' => '', 'mot_de_passe' => '', 'nom' => '', 'prenom' => '', 'admin' => '0', 'session_id' => session_id() ); } protected function utilisateurEstIdentifie() { $utilisateur = null; $utilisateur = $this->utilisateurEstIdentifieCookie(); if ($utilisateur != null) { $utilisateur['session_id'] = session_id(); } return $utilisateur; } protected function utilisateurEstIdentifieCookie() { $retour = null; if (isset($_COOKIE['del_courriel']) && isset($_COOKIE['del_mot_de_passe'])) { $retour = $this->identifierUtilisateurSansEncryptionMotDePasse($_COOKIE['del_courriel'], $_COOKIE['del_mot_de_passe']); } return $retour; } protected function identifierUtilisateur($login, $motDePasse) { $requete = 'SELECT du.id_utilisateur, nom, prenom, courriel, mot_de_passe, dui.admin '. 'FROM del_utilisateur AS du '. ' LEFT JOIN del_utilisateur_infos AS dui ON (du.id_utilisateur = dui.id_utilisateur) '. 'WHERE courriel = '.$this->bdd->proteger($login).' '. 'AND mot_de_passe = MD5('.$this->bdd->proteger($motDePasse).')'; $utilisateur = $this->bdd->recupererTous($requete); return $utilisateur; } protected function identifierUtilisateurSansEncryptionMotDePasse($login, $mot_de_passe) { $requete = 'SELECT du.id_utilisateur, nom, prenom, courriel, mot_de_passe, dui.admin '. 'FROM del_utilisateur AS du '. ' LEFT JOIN del_utilisateur_infos AS dui ON (du.id_utilisateur = dui.id_utilisateur) '. 'WHERE courriel = '.$this->bdd->proteger($login).' '. 'AND mot_de_passe = '.$this->bdd->proteger($mot_de_passe); $utilisateur = $this->bdd->recuperer($requete); return $utilisateur; } protected function setUtilisateur($utilisateur) { $utilisateur['session_id'] = session_id(); $utilisateur['connecte'] = true; $this->setPersistentCookie('del_courriel', $utilisateur['courriel'], 1); $this->setPersistentCookie('del_mot_de_passe', $utilisateur['mot_de_passe'], 1); return $utilisateur; } protected function setPersistentCookie($name, $value, $remember = 1) { setcookie($name, $value, time() + ($remember ? (60*60*24*100) : (60*60)),'/'); } protected function oublierUtilisateur() { setcookie('del_courriel', $_COOKIE['del_courriel'], time()-3600, '/'); setcookie('del_mot_de_passe', $_COOKIE['del_mot_de_passe'], time()-3600, '/'); unset($_COOKIE['del_courriel']); unset($_COOKIE['del_mot_de_passe']); } } ?>