Exemplo n.º 1
0
 public function loginAction()
 {
     // On récupère la valeur du login et du mot de passe saisi dans le formulaire
     // Sécurité contre la saisie de code html ou javascript
     // On convertit tous les caractères éligibles en entités HTML pour empêcher leur interprétation.
     $S_login = htmlentities($_POST['login'], ENT_QUOTES);
     $S_password = htmlentities($_POST['password'], ENT_QUOTES);
     // on stocke le login dans la session :
     Session::setSession('login', $S_login);
     // si on a pas un identifiant et un mot de passe on renvoit sur la page de login.
     if (null == $S_login || null == $S_password) {
         // on stocke le message d'erreur dans la clef error
         Session::setSession('error', 'Un identifiant et un mot de passe doivent être saisis');
         die(header('Location:/login'));
     }
     try {
         // on fait appelle au modèle UserMapper pour vérifier dans la base si le login existe
         $O_userMapper = new UserMapper();
         // on utilise la méthode recherche par login
         $O_user = $O_userMapper->findByLogin($S_login);
     } catch (Exception $e) {
         Session::setSession('error', $e->getMessage());
         die(header('Location:/login'));
     }
     // on vérifie le mot de passe :
     if ($O_user->getPassword() === sha1($S_password)) {
         session_regenerate_id();
         $O_user->setPassword(null);
         Session::setSession('user', $O_user);
         Session::setSession('error', null);
         die(header('Location:/'));
     } else {
         Session::setSession('error', 'Le mot de passe incorrect');
         die(header('Location:/login'));
     }
 }