summaryrefslogtreecommitdiff
path: root/Core/Functions
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-07-13 13:13:45 +0200
committerDebulois <quentin@debulois.fr>2022-07-15 14:24:02 +0200
commitbe364bb579f60ce87f43bb8421f81dc6312be23e (patch)
tree6d4e581a70840d1bacc2f7bfeb5ed1edce526de4 /Core/Functions
parent105b825923ce03fc43eacb0575212fe52336ce34 (diff)
Résolution bug regex vérification email en JsHEADmaster
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
Diffstat (limited to 'Core/Functions')
-rw-r--r--Core/Functions/func_login.php32
-rw-r--r--Core/Functions/func_logout.php2
-rw-r--r--Core/Functions/func_register.php5
-rw-r--r--Core/Functions/func_search.php4
4 files changed, 24 insertions, 19 deletions
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: