summaryrefslogtreecommitdiff
path: root/Core
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-03-31 14:56:45 +0200
committerDebulois <quentin@debulois.fr>2022-03-31 14:56:45 +0200
commitb637d625216e50602d0bde8a544c281ca00af5fa (patch)
tree5e44ad1048f8a3583cc854fe3bc21086ede4d88a /Core
parentc9d4c87b21f1050a780f5296961d24bd17c9cdc8 (diff)
Grosse maj encore avec ajout de fonctionnalités dans l'admin principalement et grosse remise en page / rennomage et preparation pour retravailler le CSS
Diffstat (limited to 'Core')
-rw-r--r--Core/Functions/func_admin.php81
-rw-r--r--Core/Functions/func_info.php41
-rw-r--r--Core/Functions/func_language.php22
-rw-r--r--Core/Functions/func_login.php78
-rw-r--r--Core/Functions/func_logout.php40
-rw-r--r--Core/Functions/func_mission.php54
-rw-r--r--Core/Functions/func_myMission.php58
-rw-r--r--Core/Functions/func_register.php30
-rw-r--r--Core/Functions/func_sanitize.php17
-rw-r--r--Core/Functions/func_search.php81
-rw-r--r--Core/wrapper.php310
11 files changed, 812 insertions, 0 deletions
diff --git a/Core/Functions/func_admin.php b/Core/Functions/func_admin.php
new file mode 100644
index 0000000..16cf7c0
--- /dev/null
+++ b/Core/Functions/func_admin.php
@@ -0,0 +1,81 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Fonctions d'administration du site #
+// # #
+// ############################################################################
+
+function admin_user_del ($userId) {
+ $dbadmin = new DbAdmin;
+ $deleted = $dbadmin->del_user_by_userid($userId);
+
+ // Sélection du message à affiché en fonction de réussite ou pas.
+ if ($deleted) {
+ $message = ["adminDelUser", "success"];
+ } else {
+ $message = ["adminDelUser", "fail"];
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+function admin_job_add($jobNameEn, $jobNameFr) {
+ $dbadmin = new DbAdmin;
+ // https://www.w3schools.com/php/func_string_strtolower.asp
+ $added = $dbadmin->register_job_category(
+ ucwords(strtolower($jobNameEn)),
+ ucwords(strtolower($jobNameFr))
+ );
+
+ // Sélection du message à affiché en fonction de réussite ou pas.
+ if ($added) {
+ $message = ["adminAddJob", "success"];
+ } else {
+ $message = ["adminAddJob", "fail"];
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+function admin_job_del($jobId) {
+ $dbadmin = new DbAdmin;
+ $deleted = $dbadmin->del_job_category_by_jobid($jobId);
+
+ // Sélection du message à affiché en fonction de réussite ou pas.
+ if ($deleted) {
+ $message = ["adminDelJob", "success"];
+ } else {
+ $message = ["adminDelJob", "fail"];
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+function admin_mission_del($missionId) {
+ $dbadmin = new DbAdmin;
+ $deleted = $dbadmin->del_mission_by_missionid($missionId);
+
+ // Sélection du message à affiché en fonction de réussite ou pas.
+ if ($deleted) {
+ $message = ["adminDelMission", "success"];
+ } else {
+ $message = ["adminDelMission", "fail"];
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Core/Functions/func_info.php b/Core/Functions/func_info.php
new file mode 100644
index 0000000..8464fe1
--- /dev/null
+++ b/Core/Functions/func_info.php
@@ -0,0 +1,41 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Fonction de modifications des informations de l'utilisateur #
+// # par ID #
+// # #
+// ############################################################################
+
+function info_update_user_infos($userInfos, $userId, $userStatus) {
+ $dbuser = new DbUser;
+ $dbsearch = new DbSearch;
+
+ switch ($userStatus) {
+ case 1:
+ $isPro = true;
+ break;
+ default:
+ $isPro = false;
+ break;
+ }
+
+ if ($isPro) {
+ $userJobs = $dbsearch->get_pro_job_by_proid($userId);
+ $userJobsId = [];
+ for ($i = 0; $i < count($userJobs); $i++) {
+ array_push($userJobsId, $userJobs[$i]["jobCategoryId"]);
+ }
+ $dbuser->update_user_infos($userInfos, $userId, $isPro, $userJobsId);
+ } else {
+ $dbuser->update_user_infos($userInfos, $userId, $isPro);
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $message = ["infosUpdate", "success"];
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Core/Functions/func_language.php b/Core/Functions/func_language.php
new file mode 100644
index 0000000..a1c1498
--- /dev/null
+++ b/Core/Functions/func_language.php
@@ -0,0 +1,22 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Modification de la variable lang de la session #
+// # qui sert à définir quel dossier de language importer #
+// # #
+// ############################################################################
+
+function language_set($language) {
+ $_SESSION["lang"] = $language;
+
+ // Redirection vers la page actuelle avec la langue à affiche.
+ if ($_SESSION["src"] == "index") {
+ header("Location: /".$_SESSION["src"].".php");
+ } else {
+ header("Location: /Templates/".$_SESSION["src"].".php");
+ }
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Core/Functions/func_login.php b/Core/Functions/func_login.php
new file mode 100644
index 0000000..6456ba1
--- /dev/null
+++ b/Core/Functions/func_login.php
@@ -0,0 +1,78 @@
+<?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->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;
+ }
+
+ // 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: /Templates/message.php");
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Core/Functions/func_logout.php b/Core/Functions/func_logout.php
new file mode 100644
index 0000000..dd6a411
--- /dev/null
+++ b/Core/Functions/func_logout.php
@@ -0,0 +1,40 @@
+<?php
+
+// ############################################################################
+// # #
+// # Decription: Fonction pour se déconnecter #
+// # #
+// ############################################################################
+
+function logout() {
+ // On instancie les méthodes de gestion de la BDD.
+ $dbuser = new DbUser;
+
+ // On récupère la session
+ session_start();
+ // On conserve la langue qui était sélectionnée.
+ $lang = $_SESSION["lang"];
+ // On détruit la session.
+ session_destroy();
+
+ // On supprime le token d'auto-connection dans la BDD.
+ $dbuser->del_token_autologin($_SESSION["email"]);
+ // Et le cookie
+ if (isset($_COOKIE["autoLogin"])) {
+ unset($_COOKIE["autoLogin"]);
+ setcookie("autoLogin", "", time() - 3600, "/");
+ }
+
+ // Et on en redémarre une nouvelle.
+ session_start();
+ $_SESSION["loggedIn"] = "0";
+ $_SESSION["lang"] = $lang;
+
+ // Enfin on redirige avec le bon message.
+ $message = ["logout", "success"];
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Core/Functions/func_mission.php b/Core/Functions/func_mission.php
new file mode 100644
index 0000000..9d009c5
--- /dev/null
+++ b/Core/Functions/func_mission.php
@@ -0,0 +1,54 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Fonction d'enregistrement d'une mission #
+// # #
+// ############################################################################
+
+function mission_initiate($proId) {
+ $dbsearch = new DbSearch;
+
+ $_SESSION["missionInitiate"] = [
+ "proId" => $proId,
+ "proJobs" => $dbsearch->get_pro_job_by_proid($proId)
+ ];
+ header("Location: /Templates/mission.php");
+ die();
+}
+
+function mission_register($subject, $clientId, $proId, $jobId) {
+ $dbmission = new DbMission;
+ $registered = $dbmission->register_mission($subject, $clientId, $proId, $jobId);
+
+ // Sélection du message à afficher en fonction de réussite ou pas.
+ if ($registered) {
+ $message = ["missionRegister", "success"];
+ } else {
+ $message = ["missionRegister", "fail"];
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+function mission_review($missionId, $review, $note) {
+ $dbmission = new DbMission;
+ $reviewed = $dbmission->review_mission($missionId, $review, $note);
+
+ // Sélection du message à afficher en fonction de réussite ou pas.
+ if ($reviewed) {
+ $message = ["missionReview", "success"];
+ } else {
+ $message = ["missionReview", "fail"];
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Core/Functions/func_myMission.php b/Core/Functions/func_myMission.php
new file mode 100644
index 0000000..3531c48
--- /dev/null
+++ b/Core/Functions/func_myMission.php
@@ -0,0 +1,58 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Fonction de gesrtion de ses missions #
+// # #
+// ############################################################################
+function mymission_accept_mission($missionId) {
+ $dbmission = new DbMission;
+ $accepted = $dbmission->accept_mission_by_missionid($missionId);
+
+ // Sélection du message à afficher en fonction de réussite ou pas.
+ if ($accepted) {
+ $message = ["missionAccepted", "success"];
+ } else {
+ $message = ["missionAccepted", "fail"];
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+function mymission_complete_mission($missionId, $userStatus) {
+ $dbmission = new DbMission;
+
+ switch ($userStatus) {
+ // Pro
+ case 1:
+ $validated = $dbmission->validate_mission_pro_by_missionid($missionId);
+ break;
+ // Client
+ case 2:
+ $validated = $dbmission->validate_mission_client_by_missionid($missionId);
+ $_SESSION["missionCompleted"] = [
+ "missionId" => $missionId
+ ];
+ header("Location: /Templates/mission.php");
+ die();
+ default:
+ break;
+ }
+
+ // Sélection du message à afficher en fonction de réussite ou pas.
+ if ($validated) {
+ $message = ["missionValidated", "success"];
+ } else {
+ $message = ["missionValidated", "fail"];
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Core/Functions/func_register.php b/Core/Functions/func_register.php
new file mode 100644
index 0000000..b7c02cd
--- /dev/null
+++ b/Core/Functions/func_register.php
@@ -0,0 +1,30 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Fonction d'inscription d'un nouvel utilisateur #
+// # #
+// ############################################################################
+
+function register($email, $password, $userStatus) {
+ $dbuser = new DbUser;
+
+ $registered = $dbuser->register_user($email,
+ $password,
+ $userStatus
+ );
+
+ // Sélection du message à afficher en fonction de la réussite de l'inscription.
+ if ($registered) {
+ $message = ["userAdd", "success"];
+ } else {
+ $message = ["userAdd", "fail"];
+ }
+
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["message"] = $message;
+ header("Location: /Templates/message.php");
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Core/Functions/func_sanitize.php b/Core/Functions/func_sanitize.php
new file mode 100644
index 0000000..afee91c
--- /dev/null
+++ b/Core/Functions/func_sanitize.php
@@ -0,0 +1,17 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Fonction simple pour nettoyer un peu la data #
+// # #
+// ############################################################################
+
+function sanitize($data) {
+ // Retrait des espaces en début et fin de la variable.
+ $trimmed = trim($data);
+ // Retrait des charactères HTML (XSS).
+ $htmlChars = htmlspecialchars($trimmed);
+ return $htmlChars;
+}
+
+?> \ No newline at end of file
diff --git a/Core/Functions/func_search.php b/Core/Functions/func_search.php
new file mode 100644
index 0000000..69740da
--- /dev/null
+++ b/Core/Functions/func_search.php
@@ -0,0 +1,81 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Fonction pour rechercher les consultants #
+// # #
+// ############################################################################
+
+function search($request, $isResearch) {
+ // Instanciation des méthodes de recherches de la BDD.
+ $dbsearch = new DbSearch;
+ $dbmission = new DbMission;
+
+ // Si c'est une recherche.
+ if ($isResearch) {
+ switch ($isResearch) {
+ case 1:
+ $result = $dbsearch->get_pro_info_by_lastname($request);
+ break;
+ case 2:
+ $result = $dbsearch->get_all_pro_by_jobid($request);
+ break;
+ default:
+ break;
+ }
+
+ // Pour chaque utilisateur avec un nom qui "match".
+ for ($i = 0; $i < count($result); $i++) {
+ $result[$i]["jobs"] = $dbsearch->get_pro_job_by_proid($result[$i]["userId"]);
+ // récupération du nombre de mission effectué.
+ $numberMission = $dbmission->count_pro_missions_by_proid($result[$i]["userId"]);
+ $result[$i]["numberOfMissions"] = $numberMission[0][0];
+ // récupération des notes de l'utilisateur.
+ $allNotes = $dbsearch->get_pro_note_by_proid($result[$i]["userId"]);
+ // Pour chaque note on la "push" (ajoute) dans une liste.
+ $notes = array();
+ for ($j = 0; $j < count($allNotes); $j++) {
+ if ($allNotes[$j][0]) {
+ array_push($notes, $allNotes[$j][0]);
+ }
+ }
+
+ // On fait la moyenne des notes,
+ // et pour les étoiles on "coupe" tout ce qui est après la virgule en castant en "int".
+ if ($notes) {
+ $average = array_sum($notes) / count($notes);
+ $result[$i]["note"] = round($average, 2);
+ $result[$i]["star"] = (int)$average;
+ // Si il n'y a pas encore de note.
+ } else {
+ $result[$i]["note"] = 0;
+ $result[$i]["star"] = 0;
+ }
+ }
+ // Si c'est "plus d'info" et non une recherche.
+ } else {
+ $result = $dbsearch->get_user_info_by_userid($request);
+ for ($i = 0; $i < count($result); $i++) {
+ $result[$i]["jobs"] = $dbsearch->get_pro_job_by_proid($request);
+ }
+ }
+
+ // Redirection vers l'index avec le "payload" (contenu) en fonction du type de recherche.
+ if ($isResearch) {
+ $search = array(
+ "result" => $result,
+ "isResearch" => true
+ );
+ } else {
+ $search = array(
+ "result" => $result,
+ "isResearch" => false
+ );
+ }
+ $_SESSION["search"] = $search;
+
+ header("Location: /index.php#separator2");
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Core/wrapper.php b/Core/wrapper.php
new file mode 100644
index 0000000..89e7b96
--- /dev/null
+++ b/Core/wrapper.php
@@ -0,0 +1,310 @@
+<?php
+
+// #############################################################################
+// # #
+// # Description: Le wrapper est le fichier qui fait le joint avec les #
+// # fonctions PHP .Son role est de filtrer les données recus #
+// # et de déclencher la bonne fonction. Selon la page qui #
+// # l'appelle, j'ai voulu créer ce système car c'est une #
+// # solution que j'ai imaginé pour rediréger tout mes #
+// # formulaires vers une page unique. #
+// # #
+// #############################################################################
+
+// Import de toutes les fonctions et des méthodes pour gérer la BDD.
+require_once(dirname( __FILE__ )."./../Database/meth_dbuser.php");
+require_once(dirname( __FILE__ )."./../Database/meth_dbadmin.php");
+require_once(dirname( __FILE__ )."./../Database/meth_dbsearch.php");
+require_once(dirname( __FILE__ )."./../Database/meth_dbmission.php");
+require_once(dirname( __FILE__ )."./Functions/func_info.php");
+require_once(dirname( __FILE__ )."./Functions/func_admin.php");
+require_once(dirname( __FILE__ )."./Functions/func_login.php");
+require_once(dirname( __FILE__ )."./Functions/func_logout.php");
+require_once(dirname( __FILE__ )."./Functions/func_search.php");
+require_once(dirname( __FILE__ )."./Functions/func_mission.php");
+require_once(dirname( __FILE__ )."./Functions/func_register.php");
+require_once(dirname( __FILE__ )."./Functions/func_language.php");
+require_once(dirname( __FILE__ )."./Functions/func_sanitize.php");
+require_once(dirname( __FILE__ )."./Functions/func_myMission.php");
+session_start();
+
+// Si la session existe et que la variable src est bien présente.
+// Ensuite on redirige en fonction de la varaible "src" de la session
+// et on vérifie que la data nécessaire est bien présente.
+// Sinon: raise 404
+if (isset($_SESSION["src"])) {
+// ****************************************************************************
+// SANITIZE
+// ****************************************************************************
+ // Avant toutes choses, on nettoie la data reçue.
+ if (isset($_POST)) {
+ foreach ($_POST as $key => $value) {
+ if ($key !== "password") {
+ $_POST[$key] = sanitize($value);
+ }
+ }
+ }
+
+
+// ****************************************************************************
+// LANGUE
+// ****************************************************************************
+ // Condition pour le changement de la langue
+ if (isset($_POST["langSel"])
+ && ($_POST["langSel"] == "en"
+ || $_POST["langSel"] == "fr")
+ ) {
+ language_set($_POST["langSel"]);
+
+
+// ****************************************************************************
+// RECHERCHE
+// ****************************************************************************
+ // Condition pour une recherche
+} elseif ($_SESSION["src"] == "index"
+ && (isset($_POST["moreInfoProId"]) && $_POST["moreInfoProId"] !== "")
+ || (isset($_POST["searchByName"]) && $_POST["searchbyName"] !== "")
+ || (isset($_POST["searchByJob"]) && $_POST["searchbyJob"] !== "")
+ ) {
+
+ if ($_POST["moreInfoProId"]) {
+ search($_POST["moreInfoProId"], 0);
+
+ } elseif ($_POST["searchByName"]) {
+ search($_POST["searchByName"], 1);
+
+ } elseif ($_POST["searchByJob"]) {
+ search($_POST["searchByJob"], 2);
+
+ } else {
+ http_response_code(404);
+ die();
+ }
+
+
+// ****************************************************************************
+// INSCRIPTION
+// ****************************************************************************
+ // Condition pour une inscription
+ } elseif ($_SESSION["src"] == "register"
+ && isset($_POST["email"],
+ $_POST["password"],
+ $_POST["userStatus"]
+ )
+ && $_POST["email"] !== ""
+ && $_POST["password"] !== ""
+ ) {
+ register($_POST["email"],
+ $_POST["password"],
+ $_POST["userStatus"]
+ );
+
+
+// ****************************************************************************
+// CONNECTION SANS ET AVEC COOKIE
+// ****************************************************************************
+ } elseif ($_SESSION["src"] == "login"
+ && isset($_POST["email"], $_POST["password"])
+ && $_POST["email"] !== ""
+ && $_POST["password"] !== ""
+ ) {
+ if (isset($_POST["rememberMe"]) && $_POST["rememberMe"] == "on") {
+ $_POST["rememberMe"] = 1;
+ } else {
+ $_POST["rememberMe"] = 0;
+ }
+ login(0, $_POST["email"], $_POST["password"], $_POST["rememberMe"]);
+
+ } elseif ($_SESSION["src"] == "autoLogin"
+ && isset($_COOKIE["autoLogin"])
+ && $_SESSION["loggedIn"]
+ ) {
+ // Si connection par cookie, on le décode avant de le passer à la fonction.
+ login(json_decode(base64_decode($_COOKIE["autoLogin"])));
+
+
+// ****************************************************************************
+// DECONNECTION
+// ****************************************************************************
+ } elseif ($_SESSION["src"] == "logout"
+ && isset($_SESSION["loggedIn"])
+ && $_SESSION["loggedIn"]
+ ) {
+ logout();
+
+
+// ****************************************************************************
+// MODIFICATION DES INFOS UTILISATEUR
+// ****************************************************************************
+ // Condition pour une modification des infos
+ } elseif ($_SESSION["src"] == "userInfo"
+ // Vérification des données si client
+ && (isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"],
+ $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"],
+ $_POST["adress"], $_POST["zipCode"], $_POST["city"]
+ )
+ && $_SESSION["userStatus"] == 2
+ && $_POST["lastname"] !== "" && $_POST["firstname"] !== ""
+ && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== ""
+ && $_POST["zipCode"] !== "" && $_POST["city"] !== ""
+ // Ou si pro
+ || isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"],
+ $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"],
+ $_POST["adress"], $_POST["zipCode"], $_POST["city"], $_POST["jobs"],
+ $_POST["degree"], $_POST["capability"], $_POST["description"]
+ )
+ && $_SESSION["userStatus"] == 1
+ && $_POST["lastname"] !== "" && $_POST["firstname"] !== ""
+ && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== ""
+ && $_POST["zipCode"] !== "" && $_POST["city"] !== ""
+ && $_POST["degree"] !== "" && $_POST["capability"] !== ""
+ && $_POST["description"] !== ""
+ )
+ ) {
+ info_update_user_infos($_POST, $_SESSION["userId"], $_SESSION["userStatus"]);
+
+
+// ****************************************************************************
+// MISSION - MANDATER, ENREGISTRER UNE REQUETE, VALIDER ET AVIS
+// ****************************************************************************
+ // mandater une mission
+ } elseif ($_SESSION["src"] == "index"
+ && (isset($_POST["mandateProId"]) && $_POST["mandateProId"] !== "")
+ ) {
+ mission_initiate($_POST["mandateProId"]);
+
+ } elseif ($_SESSION["src"] == "mission"
+ && isset($_SESSION["loggedIn"], $_SESSION["userStatus"],
+ $_POST["missionSubject"], $_POST["missionJob"],
+ $_POST["missionProId"]
+ )
+ && $_SESSION["loggedIn"]
+ && $_SESSION["userStatus"] == 2
+ && $_POST["missionSubject"] !== ""
+ && $_POST["missionJob"] !== ""
+ && $_POST["missionProId"] !== ""
+ ) {
+ mission_register($_POST["missionSubject"],
+ $_SESSION["userId"],
+ $_POST["missionProId"],
+ $_POST["missionJob"]
+ );
+
+ } elseif ($_SESSION["src"] == "mission"
+ && isset($_SESSION["loggedIn"], $_SESSION["userStatus"],
+ $_POST["missionCompletedId"], $_POST["review"],
+ $_POST["note"]
+ )
+ && $_SESSION["loggedIn"]
+ && $_SESSION["userStatus"] == 2
+ && $_POST["missionCompletedId"] !== ""
+ && $_POST["review"] !== ""
+ && $_POST["note"] !== ""
+ ) {
+ mission_review($_POST["missionCompletedId"],
+ $_POST["review"],
+ $_POST["note"]
+ );
+
+
+// ****************************************************************************
+// GESTION DE SES MISSIONS
+// ****************************************************************************
+ } elseif ($_SESSION["src"] == "myMission"
+ && isset($_SESSION["loggedIn"],
+ $_SESSION["userStatus"],
+ )
+ && ($_SESSION["userStatus"] == 1
+ || $_SESSION["userStatus"] == 2
+ )
+ ) {
+
+ if (isset($_POST["acceptedMissionId"])
+ && $_POST["acceptedMissionId"] !== ""
+ ) {
+ mymission_accept_mission($_POST["acceptedMissionId"]);
+
+ } elseif (isset($_POST["validatedMissionId"], $_SESSION["userStatus"])
+ && $_POST["validatedMissionId"] !== ""
+ && ($_SESSION["userStatus"] == 1
+ ||$_SESSION["userStatus"] == 2
+ )
+ ) {
+ mymission_complete_mission($_POST["validatedMissionId"], $_SESSION["userStatus"]);
+
+ } else {
+ http_response_code(404);
+ die();
+ }
+
+
+// ****************************************************************************
+// ADMINISTRATION
+// ****************************************************************************
+ // Condition pour l'administration du site
+ } elseif ($_SESSION["src"] == "admin"
+ && isset($_SESSION["loggedIn"],
+ $_SESSION["userStatus"]
+ )
+ && $_SESSION["loggedIn"]
+ && $_SESSION["userStatus"] == 0
+ && (isset($_POST["delUserId"])
+ || isset($_POST["addJobNameEn"],
+ $_POST["addJobNameFr"]
+ )
+ || isset($_POST["delJobId"])
+ || isset($_POST["delMissionId"])
+ )
+ ) {
+
+ // Suppression d'un utilisateur
+ if (isset($_POST["delUserId"])
+ && $_POST["delUserId"] !== ""
+ ) {
+ admin_user_del($_POST["delUserId"]);
+
+ // Ajout d'un catégorie d'emploi
+ } elseif (isset($_POST["addJobNameEn"])
+ && isset($_POST["addJobNameFr"])
+ && $_POST["addJobNameEn"] !== ""
+ && $_POST["addJobNameFr"] !== ""
+ ) {
+ admin_job_add($_POST["addJobNameEn"], $_POST["addJobNameFr"]);
+
+ // Suppression d'une categorie d'emploi
+ } elseif (isset($_POST["delJobId"])
+ && $_POST["delJobId"] !== ""
+ ) {
+ admin_job_del($_POST["delJobId"]);
+
+ // Suppression d'une mission
+ } elseif (isset($_POST["delMissionId"])
+ && $_POST["delMissionId"] !== ""
+ ) {
+ admin_mission_del($_POST["delMissionId"]);
+
+ // sinon
+ } else {
+ http_response_code(404);
+ die();
+ }
+
+
+// ****************************************************************************
+// SI ERREUR DANS $_SESSION ou $_POST
+// ****************************************************************************
+ // Enfin, si requete invalide
+ } else {
+ http_response_code(404);
+ die();
+ }
+
+
+// ****************************************************************************
+// SI "src" N'EST PAS DEFINI DANS $_SESSION
+// ****************************************************************************
+} else {
+ http_response_code(404);
+ die();
+}
+?> \ No newline at end of file