From be364bb579f60ce87f43bb8421f81dc6312be23e Mon Sep 17 00:00:00 2001 From: Debulois Date: Wed, 13 Jul 2022 13:13:45 +0200 Subject: Résolution bug regex vérification email en Js Résolution bug si char non présent dans cookie autologin Optimisation de quelques éléments Réorganisation légère des documents tiers Ajout .htaccess pour interdire le listage des dossiers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Functions/func_login.php | 32 +++++++++++++++++--------------- Core/Functions/func_logout.php | 2 +- Core/Functions/func_register.php | 5 ++++- Core/Functions/func_search.php | 4 ++-- 4 files changed, 24 insertions(+), 19 deletions(-) (limited to 'Core/Functions') diff --git a/Core/Functions/func_login.php b/Core/Functions/func_login.php index cbe4d62..8cf01f7 100644 --- a/Core/Functions/func_login.php +++ b/Core/Functions/func_login.php @@ -8,27 +8,29 @@ // # # // ############################################################################ -function login($cookie, $email = null, $pass = null, $remember = 0) { +function login($autologin, $cookie, $email = null, $pass = null, $remember = false) { // Instanciation de la gestion de la BDD utilisateur. - $dbuser = new DbUser; - $dbmission = new DbMission; + $dbuser = new DbUser; // On vérifie si la connection se fait via le formulaire de connection ou par cookie - if (!$cookie) { + if (!$autologin) { $userId = $dbuser->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]); + if (is_array($cookie) && count($cookie) == 2) { + $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; + $dbsearch = new DbSearch; + $dbmission = new DbMission; // LoggedIn devien "true". - $_SESSION["loggedIn"] = "1"; + $_SESSION["loggedIn"] = true; // 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) { @@ -37,7 +39,7 @@ function login($cookie, $email = null, $pass = null, $remember = 0) { // Partie notification, // Ajout à la session d'un élément "notification". - $_SESSION["notification"] = 0; + $_SESSION["notification"] = false; // Si c'est un pro if ($_SESSION["userStatus"] == "1") { // on récupère et loop dans ses missions @@ -46,7 +48,7 @@ function login($cookie, $email = null, $pass = null, $remember = 0) { // Si il y a une mission en attente if (!$result[$i]["acceptedByPro"]) { // l'élément de la liste notification devient vrai - $_SESSION["notification"] = 1; + $_SESSION["notification"] = true; // Et on stop le loop, inutile d'aller plus loin break; } @@ -55,7 +57,7 @@ function login($cookie, $email = null, $pass = null, $remember = 0) { // Si était coché remember me ou que la connection s'est faite via cookie, // on en génère un nouveau. - if ($remember || $cookie) { + if ($remember || $autologin) { $name = "autoLogin"; // On génère une chaine de caractère aléatoire de 32 bytes en supprimant les caractères spéciaux de base64. $token = substr(str_replace(["+", "/", "="], "",base64_encode(random_bytes(64))) ,0 , 32); @@ -64,20 +66,20 @@ function login($cookie, $email = null, $pass = null, $remember = 0) { // 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), + time() + (86400 * 7), // 7 jours "/" ); } // On sélectionne le bon message en fonction du type de connection. - if (!$cookie) { + if (!$autologin) { $message = ["login", "success"]; } else { $message = ["loginCookie", "success"]; } } else { // Si la connection a échoué. - if (!$cookie) { + if (!$autologin) { $message = ["login", "fail"]; // Si la connection à échoué par cookie. } else { diff --git a/Core/Functions/func_logout.php b/Core/Functions/func_logout.php index e1c28bf..35410ca 100644 --- a/Core/Functions/func_logout.php +++ b/Core/Functions/func_logout.php @@ -27,7 +27,7 @@ function logout() { // Et on en redémarre une nouvelle. session_start(); - $_SESSION["loggedIn"] = "0"; + $_SESSION["loggedIn"] = false; $_SESSION["lang"] = $lang; // Enfin on redirige avec le bon message. diff --git a/Core/Functions/func_register.php b/Core/Functions/func_register.php index 4c6b00a..4d11dfa 100644 --- a/Core/Functions/func_register.php +++ b/Core/Functions/func_register.php @@ -11,12 +11,15 @@ function register($email, $password, $userStatus) { $regNumb = "/[0-9]/"; $regUpper = "/[A-Z]/"; $regSpecial = "/[`!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?~µ°€£]/"; - $regEmail = "/^[a-z0-9._-]+@[a-z0-9-]+\.[a-z]/"; + $regEmail = "/^[a-z0-9._-]+@[a-z0-9-]+\.[a-z]+$/"; if ((strlen($password) >= 8) + && (strlen($password) <= 128) && preg_match($regNumb, $password) && preg_match($regUpper, $password) && preg_match($regSpecial, $password) + && (strlen($email) > 0) + && (strlen($email) <= 128) && preg_match($regEmail, $email) ) { $dbuser = new DbUser; diff --git a/Core/Functions/func_search.php b/Core/Functions/func_search.php index 9575026..54a0cda 100644 --- a/Core/Functions/func_search.php +++ b/Core/Functions/func_search.php @@ -14,10 +14,10 @@ function search($request, $isResearch) { // Si c'est une recherche. if ($isResearch) { switch ($isResearch) { - case 1: + case "lastname": $result = $dbsearch->get_pro_info_by_lastname($request); break; - case 2: + case "jobid": $result = $dbsearch->get_all_pro_by_jobid($request); break; default: -- cgit v1.2.3