/** * Permet de restaurer la session à partir d'un cookie. * @return ModelCompte le modèle de compte obtenu depuis la session */ public static function restoreSession() { $dataError = array(); if (!isset($_COOKIE['SID_part1']) || !preg_match(RegexUtils::$ID, $_COOKIE['SID_part1'])) { $dataError['no-cookie'] = "Votre cookie a expiré, veuillez vous reconnecter."; $userModel = new ModelCompte(Compte::getDefaultCompte(), "", $dataError); } else { $mySID_part1 = $_COOKIE['SID_part1']; $mySID_part2 = hash('md5', $_SERVER['REMOTE_ADDR']); session_id($mySID_part1 . $mySID_part2); session_start(); setcookie("SID_part1", $mySID_part1, time() + 60 * 5); $userModel = ModelCompte::getModelCompteFromSession(); session_write_close(); } return $userModel; }