summaryrefslogtreecommitdiff
path: root/Wrapper/Functions/func_login.php
diff options
context:
space:
mode:
Diffstat (limited to 'Wrapper/Functions/func_login.php')
-rw-r--r--Wrapper/Functions/func_login.php68
1 files changed, 0 insertions, 68 deletions
diff --git a/Wrapper/Functions/func_login.php b/Wrapper/Functions/func_login.php
deleted file mode 100644
index 165c2cd..0000000
--- a/Wrapper/Functions/func_login.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-// ****************************************************************************
-// Description: Fonction de connection, par combinaison de mail & mdp
-// ou par un cookie dans lequel est stocké l'email et une chaine
-// de caractère aléatoire valable pour une seule tentative.
-// ****************************************************************************
-function login($cookie, $email = null, $pass = null, $remember = 0) {
- // Instanciation de la gestion de la BDD utilisateur.
- $dbuser = new DbUser;
- // On vérifie si la connection se fait via le formulaire de connection ou par cookie
- if (!$cookie) {
- $userId = $dbuser->user_check_credential($email, $pass);
- // ou par cookie.
- } else {
- // On essaie une fois.
- $userId = $dbuser->autologin_token_check($cookie[0], $cookie[1]);
- // Et on le supprime.
- $dbuser->autologin_token_delete($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_id($userId);
- foreach ($userInfo as $key => $value) {
- $_SESSION[$key] = $value;
- }
- // 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->autologin_token_update($_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: /Views/message.php");
- die();
-}
-?> \ No newline at end of file