check_user_credential($email, $pass); // ou par cookie. } else { // On essaie une fois. $userId = $dbuser->check_token_autologin($cookie[0], $cookie[1]); // Et on le supprime. $dbuser->del_token_autologin($cookie[0]); } // Si on a un résultat valide. if ($userId) { $dbsearch = new DbSearch; // LoggedIn devien "true". $_SESSION["loggedIn"] = "1"; // et on remplie les variables de la session avec les infos de l'utilisateur. $userInfo = $dbsearch->get_user_account_by_userid($userId); foreach ($userInfo as $key => $value) { $_SESSION[$key] = $value; } // Partie notification, // Ajout à la session d'un élément "notification". $_SESSION["notification"] = 0; // Si c'est un pro if ($_SESSION["userStatus"] == "1") { // on récupère et loop dans ses missions $result = $dbmission->get_mission_by_proid($_SESSION["userId"]); for ($i = 0; $i < count($result); $i++) { // Si il y a une mission en attente if (!$result[$i]["acceptedByPro"]) { // l'élément de la liste notification devient vrai $_SESSION["notification"] = 1; // Et on stop le loop, inutile d'aller plus loin break; } } } // Si était coché remember me ou que la connection s'est faite via cookie, // on en génère un nouveau. if ($remember || $cookie) { $name = "autoLogin"; // On génère une chaine de caractère aléatoire en supprimant les caractères spéciaux de base64. $token = str_replace(["+", "/", "="], "", base64_encode(random_bytes(32))); // On update le nouveau token. $dbuser->update_token_autologin($_SESSION["email"], $token); // Enfin on place l'ensemble sur le navigateur du client codé en base64. setcookie($name, base64_encode(json_encode(array($_SESSION["email"], $token))), time() + (86400 * 7), "/" ); } // On sélectionne le bon message en fonction du type de connection. if (!$cookie) { $message = ["login", "success"]; } else { $message = ["loginCookie", "success"]; } } else { // Si la connection a échoué. if (!$cookie) { $message = ["login", "fail"]; // Si la connection à échoué par cookie. } else { // Suppression du cookie. unset($_COOKIE["autoLogin"]); setcookie("autoLogin", "", time() - 3600, "/"); $message = ["loginCookie", "fail"]; } } // On redirige vers message. $_SESSION["message"] = $message; header("Location: /Template/message.php"); die(); } ?>