summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-03-18 13:22:30 +0100
committerDebulois <quentin@debulois.fr>2022-03-18 13:22:30 +0100
commitf66e40340d62b5c694093bc6d10f99337382d12a (patch)
treebda05cfabbe465c3b24c0349dcbda33f21045954
parent473e6eb56ca1211be05d2b5fd814710f2ff78d38 (diff)
Réécriture du JS & Modifications de la gestion des informations de l'utilisateur et d'autres trucs
-rw-r--r--Database/meth_dbadmin.php11
-rw-r--r--Database/meth_dbmission.php8
-rw-r--r--Database/meth_dbsearch.php35
-rw-r--r--Database/meth_dbuser.php76
-rw-r--r--Statics/Js/index.js33
-rw-r--r--Statics/Js/main.js59
-rw-r--r--Statics/Js/message.js26
-rw-r--r--Statics/Js/userinfo.js106
-rw-r--r--Views/Includes/en/message.php64
-rw-r--r--Views/Includes/en/text.php27
-rw-r--r--Views/Includes/fr/message.php68
-rw-r--r--Views/Includes/fr/text.php25
-rw-r--r--Views/Includes/incl_form_admin.php4
-rw-r--r--Views/Includes/incl_form_userInfo.php73
-rw-r--r--Views/Includes/incl_global_message.php14
-rw-r--r--Views/Includes/incl_table_myMission.php2
-rw-r--r--Views/message.php1
-rw-r--r--Wrapper/Functions/func_info.php16
-rw-r--r--Wrapper/Functions/func_login.php3
-rw-r--r--Wrapper/wrapper.php54
-rw-r--r--favicon.icobin0 -> 41662 bytes
-rw-r--r--index.php1
-rw-r--r--todo.txt2
23 files changed, 479 insertions, 229 deletions
diff --git a/Database/meth_dbadmin.php b/Database/meth_dbadmin.php
index 32d6077..883063b 100644
--- a/Database/meth_dbadmin.php
+++ b/Database/meth_dbadmin.php
@@ -15,8 +15,8 @@ class DbAdmin extends DbMain {
// https://www.php.net/manual/fr/pdostatement.fetch.php
// "PDO::FETCH_ASSOC: retourne un tableau indexé
// par le nom de la colonne comme retourné dans le jeu de résultats"
- $data = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
- return $data;
+ $result = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
+ return $result;
}
// https://stackoverflow.com/questions/1361340/how-can-i-do-insert-if-not-exists-in-mysql
@@ -44,13 +44,6 @@ class DbAdmin extends DbMain {
return 0;
}
}
-
- // Récupérer toutes les infos de la table jobCategory
- final public function get_all_job_category() {
- $reqGetAll = "SELECT * FROM ".$this->tableJobCategory;
- $data = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
- return $data;
- }
// Ajout d'une categorie
final public function job_category_register($jobCategoryNameEn, $jobCategoryNameFr) {
diff --git a/Database/meth_dbmission.php b/Database/meth_dbmission.php
index 006f572..f39f0b6 100644
--- a/Database/meth_dbmission.php
+++ b/Database/meth_dbmission.php
@@ -42,8 +42,8 @@ class DbMission extends DbMain {
LEFT JOIN ".$this->tableUserInfo."
ON ".$this->tableMission.".missionId = ".$this->tableUserInfo.".userId
WHERE proId = ?";
- $data = $this->exec_cmd($reqGetAllMission, array($id))->fetchAll(PDO::FETCH_ASSOC);
- return $data;
+ $result = $this->exec_cmd($reqGetAllMission, array($id))->fetchAll(PDO::FETCH_ASSOC);
+ return $result;
}
// Compte le nombre de mission d'un consultant par son nom
@@ -52,8 +52,8 @@ class DbMission extends DbMain {
INNER JOIN ".$this->tableUserInfo."
ON ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
WHERE lastname = ?";
- $data = $this->exec_cmd($reqCountMission, array($name))->fetchAll(PDO::FETCH_ASSOC);
- return $data;
+ $result = $this->exec_cmd($reqCountMission, array($name))->fetchAll(PDO::FETCH_ASSOC);
+ return $result;
}
} \ No newline at end of file
diff --git a/Database/meth_dbsearch.php b/Database/meth_dbsearch.php
index 8a95a67..5104d15 100644
--- a/Database/meth_dbsearch.php
+++ b/Database/meth_dbsearch.php
@@ -5,7 +5,7 @@
// ****************************************************************************
// Infos pour les "join":
// https://www.freecodecamp.org/news/sql-joins-tutorial/
-//
+
// Import de dbmain
require_once(dirname( __FILE__ )."/dbmain.php");
// Extension de cette classe avec dbmain
@@ -15,8 +15,8 @@ class DbSearch extends DbMain {
final public function get_user_account_by_id($id) {
$reqSearchUser = "SELECT userId, email, inscriptionDate, isClient, isPro, isAdmin
FROM ".$this->tableUserAccount." WHERE userId = ?";
- $data = $this->exec_cmd($reqSearchUser, array($id))->fetch(PDO::FETCH_ASSOC);
- return $data;
+ $result = $this->exec_cmd($reqSearchUser, array($id))->fetch(PDO::FETCH_ASSOC);
+ return $result;
}
// Récupération des infos d'un utilisateur par son id
@@ -25,8 +25,8 @@ class DbSearch extends DbMain {
capability, description, phoneNumber,
adress, zipCode, city
FROM ".$this->tableUserInfo." WHERE userId = ?";
- $data = $this->exec_cmd($reqGetUserInfo, array($id))->fetchAll(PDO::FETCH_ASSOC);
- return $data;
+ $result = $this->exec_cmd($reqGetUserInfo, array($id))->fetchAll(PDO::FETCH_ASSOC);
+ return $result;
}
// Récupération des infos d'un pro par son nom
@@ -36,19 +36,36 @@ class DbSearch extends DbMain {
INNER JOIN ".$this->tableUserAccount."
ON ".$this->tableUserInfo.".userId = ".$this->tableUserAccount.".userId
WHERE isPro = '1' AND lastname LIKE CONCAT('%', ?, '%')";
- $data = $this->exec_cmd($reqSearchConsultant, array($research))->fetchAll(PDO::FETCH_ASSOC);
- return $data;
+ $result = $this->exec_cmd($reqSearchConsultant, array($research))->fetchAll(PDO::FETCH_ASSOC);
+ return $result;
}
+ // Récupération des emploies associés à un pro
+ final public function get_pro_job_category($id) {
+ $reqGetAll = "SELECT jobCategoryId FROM ".$this->tableUserJob." WHERE userId = ?";
+ $result = $this->exec_cmd($reqGetAll, array($id))->fetchAll(PDO::FETCH_NUM);
+ $proJobs = [];
+ for ($i = 0; $i < count($result); $i++) {
+ array_push($proJobs, $result[$i][0]);
+ }
+ return $proJobs;
+ }
+
// Récupération des notes d'un consultant par son nom
final public function get_pro_note_by_lastname($name) {
$reqCountMission = "SELECT note FROM ".$this->tableMission."
INNER JOIN ".$this->tableUserInfo."
ON ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
WHERE lastname = ?";
- $data = $this->exec_cmd($reqCountMission, array($name))->fetchAll(PDO::FETCH_ASSOC);
- return $data;
+ $result = $this->exec_cmd($reqCountMission, array($name))->fetchAll(PDO::FETCH_ASSOC);
+ return $result;
}
+ // Récupérer toutes les infos de la table jobCategory
+ final public function get_job_category_all() {
+ $reqGetAll = "SELECT * FROM ".$this->tableJobCategory;
+ $result = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
+ return $result;
+ }
}
?> \ No newline at end of file
diff --git a/Database/meth_dbuser.php b/Database/meth_dbuser.php
index c0afb8c..1b62b46 100644
--- a/Database/meth_dbuser.php
+++ b/Database/meth_dbuser.php
@@ -24,7 +24,8 @@ class DbUser extends DbMain {
// Préparation de la requète
$reqAddUser = "INSERT INTO ".$this->tableUserAccount."
(email, password, inscriptionDate, isClient, isPro, isAdmin)
- VALUES (?, ?, ?, ?, ?, ?)";
+ VALUES
+ (?, ?, ?, ?, ?, ?)";
// Execution de la requète
$this->exec_cmd($reqAddUser,
array($email,
@@ -51,9 +52,9 @@ class DbUser extends DbMain {
// Chiffrement du mot de passe
$crypt = $this->crypt_pass($pass);
// Execution de la requète
- $data = $this->exec_cmd($reqCheckCredential, array($email))->fetchAll(PDO::FETCH_ASSOC);
+ $result = $this->exec_cmd($reqCheckCredential, array($email))->fetchAll(PDO::FETCH_ASSOC);
// Vérifiaction de correspondance email & pass
- foreach ($data as $rows) {
+ foreach ($result as $rows) {
if ($rows["password"] == $crypt) {
return $rows["userId"];
}
@@ -61,24 +62,59 @@ class DbUser extends DbMain {
}
// Mise à jour des infos d'un utilisateur
- final public function user_infos_update($lastname, $firstname, $job, $degree,
- $capability, $description, $phoneNumber,
- $adress, $zipCode, $city, $userId) {
+ final public function user_infos_update($userInfos, $userId, $isPro, $userJobs = null) {
// Préparation de la requète pour mise à jour des infos
- $reqAddInfo = "REPLACE INTO ".$this->tableUserInfo."
- (lastname, firstname, job, degree, capability,
- description, phoneNumber, adress, zipCode, city, userId)
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
- // Exécution de la requète
- $this->exec_cmd($reqAddInfo,
- array($lastname, $firstname, $job, $degree,
- $capability, $description, $phoneNumber,
- $adress, $zipCode, $city, $userId
- )
- );
+ // J'ai préféré faire deux requètes distinctes et ne pas utiliser des valeurs
+ // passées par $POST ($key => $value) pour gérer les noms des colonnes
+ // car je préfère les passer en "dur" dans mes requêtes (risque d'injection SQL?).
+ $reqAddInfoClient = "UPDATE ".$this->tableUserInfo."
+ SET
+ lastname = ?, firstname = ?, phoneNumber = ?,
+ adress = ?, zipCode = ?, city = ?
+ WHERE
+ userId = ?";
+ $reqAddInfoPro = "UPDATE ".$this->tableUserInfo."
+ SET
+ lastname = ?, firstname = ?, phoneNumber = ?,
+ adress = ?, zipCode = ?, city = ?,
+ degree = ?, capability = ?, description = ?
+ WHERE
+ userId = ?";
+ $reqAddInfoProJobs = "INSERT INTO ".$this->tableUserJob."
+ (jobCategoryId, userId)
+ VALUES
+ (?, ?)";
+ $reqRemoveInfoProJobs = "DELETE FROM ".$this->tableUserJob."
+ WHERE
+ jobCategoryId = ?
+ AND
+ userId = ?";
+ if (!$isPro) {
+ // Exécution de la requète
+ // https://www.php.net/manual/fr/function.array-values.php
+ // Pour passer de dict a list -> array_values()
+ $args = array_values($userInfos);
+ array_push($args, $userId);
+ $this->exec_cmd($reqAddInfoClient, array_push($args, $userId));
+ } else {
+ // TODO: Commenter
+ // https://stackoverflow.com/questions/15986235/how-to-use-json-stringify-and-json-decode-properly
+ $selectedJobs = json_decode(html_entity_decode($userInfos["jobs"]));
+ unset($userInfos["jobs"]);
+ $jobsAdded = array_values(array_diff($selectedJobs, $userJobs));
+ $jobsRemoved = array_values(array_diff($userJobs, $selectedJobs));
+ $args = array_values($userInfos);
+ array_push($args, $userId);
+ $this->exec_cmd($reqAddInfoPro, $args);
+ for ($i = 0; $i < count($jobsAdded); $i++) {
+ $this->exec_cmd($reqAddInfoProJobs, array($jobsAdded[$i], $userId));
+ }
+ for ($i = 0; $i < count($jobsRemoved); $i++) {
+ $this->exec_cmd($reqRemoveInfoProJobs, array($jobsRemoved[$i], $userId));
+ }
+ }
}
-
// ****************************************************************************
// Gestion du token-autologin
// ****************************************************************************
@@ -89,9 +125,9 @@ class DbUser extends DbMain {
$reqCheckToken = "SELECT userId, tokenAutoLogin
FROM ".$this->tableUserAccount." WHERE email = ?";
// Exécution de la requète
- $data = $this->exec_cmd($reqCheckToken, array($email))->fetchAll(PDO::FETCH_ASSOC);
+ $result = $this->exec_cmd($reqCheckToken, array($email))->fetchAll(PDO::FETCH_ASSOC);
// Vérifiaction de correspondance email & jeton d'auto-connection
- foreach ($data as $rows) {
+ foreach ($result as $rows) {
if ($rows["tokenAutoLogin"] == $token) {
return $rows["userId"];
}
diff --git a/Statics/Js/index.js b/Statics/Js/index.js
new file mode 100644
index 0000000..1c89567
--- /dev/null
+++ b/Statics/Js/index.js
@@ -0,0 +1,33 @@
+
+// ****************************************************************************
+// INDEX
+// ****************************************************************************
+
+// Slideshow
+function start_slideshow() {
+ let imageNumber = 1;
+ let images = [
+ "/Medias/Images/slide0.jpg",
+ "/Medias/Images/slide1.jpg",
+ "/Medias/Images/slide2.jpg"
+ ];
+
+ setInterval(() => {
+ // Changement del'image de fond de de la div
+ document.getElementById("slideshow").style.backgroundImage = `url("${images[imageNumber]}")`;
+ // Untoggle les précedents
+ // Utilisation de ternary, utilisation: condition ? Sivrai : Sifaux
+ document.getElementById(`textSlide${imageNumber !== 0 ? imageNumber - 1 : images.length - 1}`).classList.toggle("show");
+ document.getElementById(`indicatorSlide${imageNumber !== 0 ? imageNumber - 1 : images.length - 1}`).classList.toggle("slideSelected");
+ // Toggle le nouveau texte & selecteur
+ document.getElementById(`textSlide${imageNumber}`).classList.toggle("show");
+ document.getElementById(`indicatorSlide${imageNumber}`).classList.toggle("slideSelected")
+ // +1 sauf si fin
+ if(imageNumber < images.length - 1) {
+ imageNumber++;
+ } else {
+ imageNumber = 0;
+ }
+ }
+ ,5000);
+}
diff --git a/Statics/Js/main.js b/Statics/Js/main.js
index 120bfb3..b4d0894 100644
--- a/Statics/Js/main.js
+++ b/Statics/Js/main.js
@@ -1,61 +1,12 @@
-//
+// ****************************************************************************
+// Main
+// ****************************************************************************
+
// Site web utilisés pour JS:
// https://www.w3schools.com/js/default.asp
-// https://stackoverflow.com/
-//
+// https://stackoverflow.com/
// Changement de langue
document.getElementById("langSel").addEventListener("change", () => {
document.getElementById("langForm").submit();
});
-
-// Redirection
-function redirect(page) {
- window.location.href = `${page}.php`;
-}
-
-// Timer pour message
-function start_timer() {
- // var -> global, let -> local{}
- let seconds = 3;
- let text = document.getElementById("redirect").innerHTML;
- setInterval(() => {
- if (seconds > 0) {
- document.getElementById("redirect").innerHTML = `${text} ${seconds}.`;
- seconds --;
- } else {
- document.getElementById("redirect").innerHTML = `${text} ${seconds}.`;
- redirect("/index");
- }
- },
- 1000);
-}
-
-// Slideshow
-function start_slideshow() {
- let imageNumber = 1;
- let images = [
- "/Medias/Images/slide0.jpg",
- "/Medias/Images/slide1.jpg",
- "/Medias/Images/slide2.jpg"
- ];
-
- setInterval(() => {
- // Changement del'image de fond de de la div
- document.getElementById("slideshow").style.backgroundImage = `url("${images[imageNumber]}")`;
- // Untoggle les précedents
- // Utilisation de ternary, utilisation: condition ? Sivrai : Sifaux
- document.getElementById(`textSlide${imageNumber !== 0 ? imageNumber - 1 : images.length - 1}`).classList.toggle("show");
- document.getElementById(`indicatorSlide${imageNumber !== 0 ? imageNumber - 1 : images.length - 1}`).classList.toggle("slideSelected");
- // Toggle le nouveau texte & selecteur
- document.getElementById(`textSlide${imageNumber}`).classList.toggle("show");
- document.getElementById(`indicatorSlide${imageNumber}`).classList.toggle("slideSelected")
- // +1 sauf si fin
- if(imageNumber < images.length - 1) {
- imageNumber++;
- } else {
- imageNumber = 0;
- }
- }
- ,5000);
-}
diff --git a/Statics/Js/message.js b/Statics/Js/message.js
new file mode 100644
index 0000000..55eff48
--- /dev/null
+++ b/Statics/Js/message.js
@@ -0,0 +1,26 @@
+
+// ****************************************************************************
+// MESSAGES
+// ****************************************************************************
+
+// Redirection
+function redirect(page) {
+ window.location.href = `/${page}.php`;
+}
+
+// Timer pour message
+function start_timer(page) {
+ // var -> global, let -> local{}
+ let seconds = 1;
+ let text = document.getElementById("redirect").innerHTML;
+ setInterval(() => {
+ if (seconds > 0) {
+ document.getElementById("redirect").innerHTML = `${text} ${seconds}.`;
+ seconds --;
+ } else {
+ document.getElementById("redirect").innerHTML = `${text} ${seconds}.`;
+ redirect(page);
+ }
+ },
+ 1000);
+}
diff --git a/Statics/Js/userinfo.js b/Statics/Js/userinfo.js
new file mode 100644
index 0000000..6b4c1d9
--- /dev/null
+++ b/Statics/Js/userinfo.js
@@ -0,0 +1,106 @@
+
+// ****************************************************************************
+// USERINFO
+// ****************************************************************************
+// Mes sources pour créer cette partie:
+// https://stackoverflow.com/questions/1085801/get-selected-value-in-dropdown-list-using-javascript
+// https://stackoverflow.com/questions/47951287/dynamically-add-li-to-ul-javascript
+// https://developer.mozilla.org/en-US/docs/Web/API/Document/createTextNode
+// https://www.encodedna.com/javascript/how-to-get-all-li-elements-in-ul-using-javascript.htm
+// https://www.geeksforgeeks.org/javascript-convert-an-array-to-json/
+// https://stackoverflow.com/questions/17785592/difference-between-json-stringify-and-json-parse
+// https://www.w3docs.com/snippets/javascript/how-to-remove-an-element-from-an-array-in-javascript.html
+// On passe par du JSON pour passer la liste des emplois du pro
+
+// ****************************************************************************
+// GLOBAL
+// ****************************************************************************
+var payload = [];
+var dictJobs = {};
+
+// ****************************************************************************
+// FONCTIONS ANNEXES
+// ****************************************************************************
+// Récupération des possibles emplois et stockage dans une variable
+function init_dict_jobs() {
+ // Récupération des emplois disponibles
+ let selJob = document.getElementById("jobsSel");
+
+ // Pour chaque emploi disponible
+ for (i = 0; i < selJob.length; i ++) {
+ if (selJob[i].value !== "") {
+ // Création d'un dictionnaire -> "Nom Emploi": "ID"
+ dictJobs[selJob[i].text] = selJob[i].value;
+ }
+ }
+}
+
+// Création et ajout d'un bouton "supprimmer"
+function add_bouton_rm(li, jobsId) {
+ // Création et configuration du bouton
+ let buttonDel = document.createElement("button");
+ buttonDel.type = "button";
+ buttonDel.innerHTML = "<i class=\"fas fa-ban\"></i>";
+ buttonDel.onclick = () => {remove(li, jobsId);};
+
+ // Ajout du boutton au "li" passé en argument
+ li.appendChild(buttonDel);
+}
+
+// ****************************************************************************
+// FONCTIONS PRINCIPALES
+// ****************************************************************************
+// Initiation
+function init() {
+ // Peuplement du dictionnaire des emploies "Nom Emploi": "ID"
+ init_dict_jobs();
+
+ // Récupération des emplois déja présent
+ let jobs = document.getElementById("jobsList").getElementsByTagName("li");
+
+ // Pour chaque emploi déja enregistré
+ for (i = 0; i < jobs.length; i ++) {
+ // Ajout de chaques choix à la liste final "payload"
+ payload.push(dictJobs[jobs[i].innerHTML]);
+ // Ajout d'un id et d'un bouton remove à chaque "li".
+ jobs[i].id = "jobId_" + dictJobs[jobs[i].innerHTML];
+ add_bouton_rm(jobs[i], dictJobs[jobs[i].innerHTML]);
+ }
+
+ // Transformation de la liste des emplois choisis en JSON
+ // et inscription de ce dernier dans la "value" de l'input "jobs".
+ document.getElementById("jobs").value = JSON.stringify(payload);
+}
+
+// Ajout d'un emploi
+function add() {
+ // Récupération du nom du choix dans le "select" des emplois
+ let jobName = document.getElementById("jobsSel").options[jobsSel.selectedIndex].text;
+
+ // Si l'emploi n'est pas deja dans "payload"
+ // et si il fait bien partie du dictionnaire de tous les emplois
+ if (jobName in dictJobs && !payload.includes(dictJobs[jobName])) {
+ // Ajout à payload
+ payload.push(dictJobs[jobName]);
+ // Création, configuration et ajout du nouveau "li"
+ let li = document.createElement("li");
+ li.id = "jobId_" + dictJobs[jobName];
+ li.appendChild(document.createTextNode(jobName));
+ add_bouton_rm(li, dictJobs[jobName]);
+ document.getElementById("jobsList").appendChild(li);
+ // Transformation de la liste des emplois choisis en JSON
+ // et inscription de ce dernier dans la "value" de l'input "jobs".
+ document.getElementById("jobs").value = JSON.stringify(payload);
+ }
+}
+
+// Suppression d'un emploi
+function remove(li, jobsId) {
+ // Suppression de l'emploi dans "payload"
+ payload.splice(payload.indexOf(jobsId), 1);
+ // Suppression du "li" de l'emploi
+ document.getElementById("jobsList").removeChild(li);
+ // Transformation de la liste des emplois choisis en JSON
+ // et inscription de ce dernier dans la "value" de l'input "jobs".
+ document.getElementById("jobs").value = JSON.stringify(payload);
+}
diff --git a/Views/Includes/en/message.php b/Views/Includes/en/message.php
index 6e5955f..50417a3 100644
--- a/Views/Includes/en/message.php
+++ b/Views/Includes/en/message.php
@@ -11,89 +11,105 @@ $message = [
["success" => true,
"title" => "Delete an user.",
"info" => "User deleted !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// 1 Message échec
["success" => false,
"title" => "Delete an user.",
"info" => "No user was deleted.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Informations de l'utilisateur
// 2 Message réussitee
["success" => true,
- "title" => "Update user information.",
- "info" => "User informations updated !",
- "timer" => true],
+ "title" => "Update user information.",
+ "info" => "User informations updated !",
+ "timer" => true,
+ "toSrc" => true],
// Login sans cookie
// 3 Message réussitee
["success" => true,
- "title" => "Login.",
- "info" => "Successfully logged in!",
- "timer" => true],
+ "title" => "Login.",
+ "info" => "Successfully logged in!",
+ "timer" => true,
+ "toSrc" => false],
// 4 Message échec
["success" => false,
"title" => "Login.",
"info" => "Error bad credentials.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Login avec cookie
// 5 Message réussitee
["success" => true,
- "title" => "",
- "info" => "",
- "timer" => false],
+ "title" => "",
+ "info" => "",
+ "timer" => false,
+ "toSrc" => false],
// 6 Message échec
["success" => false,
"title" => "Login cookie.",
"info" => "Error with the cookie auto-login.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => false],
// Log out
// 7 Message global
["success" => true,
- "title" => "Log out.",
- "info" => "Successefuly logged out!",
- "timer" => true],
+ "title" => "Log out.",
+ "info" => "Successefuly logged out!",
+ "timer" => true,
+ "toSrc" => false],
// Ajout mission
// 8 Message réussitee
["success" => true,
"title" => "Register a mission.",
"info" => "Mission registered !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// 9 Message échec
["success" => false,
"title" => "Register a mission.",
"info" => "Error, probably wrong consultant ID.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Ajout utilisateur
// 10 Message réussitee
["success" => true,
"title" => "Register an user.",
"info" => "User successfully registered !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// 11 Message échec
["success" => false,
"title" => "Register an user.",
"info" => "Error, user not registered.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Ajout categorie
// 12 Message réussitee
["success" => true,
"title" => "Add a job category.",
"info" => "Category added !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// 13 Message échec
["success" => false,
"title" => "Add a job category.",
"info" => "Category not added.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Suppression categorie
// 14 Message réussitee
["success" => true,
"title" => "Deletion of a job category.",
"info" => "Category deleted !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// 15 Message échec
["success" => false,
"title" => "Deletion of a job category.",
"info" => "Category not deleted !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
];
?> \ No newline at end of file
diff --git a/Views/Includes/en/text.php b/Views/Includes/en/text.php
index 1111e35..73aa268 100644
--- a/Views/Includes/en/text.php
+++ b/Views/Includes/en/text.php
@@ -18,18 +18,19 @@ $text = [
"main" => "Made by Debulois Quentin for my professional folder.<br>December 2021, all rights reserved.",
],
"incl_form_userInfo" => [
- "h2" => "Informations about the user.",
- "lastname" => "Last name",
- "firstname" => "First name",
- "job" => "Job",
- "degree" => "Degree",
- "capability" => "Capacities",
- "description" => "Descriptions",
- "phoneNumber" => "Phone number",
- "adress" => "Adress",
- "zipCode" => "Zip code",
- "city" => "City",
- "submit" => "Modify"
+ "h2" => "Informations about the user.",
+ "lastname" => "Last name",
+ "firstname" => "First name",
+ "phoneNumber" => "Phone number",
+ "adress" => "Adress",
+ "zipCode" => "Zip code",
+ "city" => "City",
+ "jobsSel" => "Jobs",
+ "jobsAdd" => "Add",
+ "degree" => "Degree",
+ "capability" => "Capacities",
+ "description" => "Descriptions",
+ "submit" => "Modify"
],
"incl_form_login" => [
"h2" => "Login",
@@ -61,7 +62,7 @@ $text = [
"lang" => "Language",
"btnLang" => "Select"
],
- "incl_form register" => [
+ "incl_form_register" => [
"h2" => "Form to sign-in",
"email" => "Email",
"password" => "Password",
diff --git a/Views/Includes/fr/message.php b/Views/Includes/fr/message.php
index 408bd82..dbf66f9 100644
--- a/Views/Includes/fr/message.php
+++ b/Views/Includes/fr/message.php
@@ -9,91 +9,107 @@ $message = [
// Delete
// 0 Message réussitee
["success" => true,
- "title" => "Supprimer un utilisateur.",
- "info" => "Utilisateur Supprimé !",
- "timer" => true],
+ "title" => "Supprimer un utilisateur.",
+ "info" => "Utilisateur Supprimé !",
+ "timer" => true,
+ "toSrc" => true],
// 1 Message échec
["success" => false,
"title" => "Supprimer un utilisateur.",
"info" => "Aucun utilisateur supprimé.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Informations de l'utilisateur
// 2 Message réussitee
["success" => true,
- "title" => "Modification des infos de l'utilisateur.",
- "info" => "Informations mises à jour !",
- "timer" => true],
+ "title" => "Modification des infos de l'utilisateur.",
+ "info" => "Informations mises à jour !",
+ "timer" => true,
+ "toSrc" => true],
// Login sans cookie
// 3 Message réussitee
["success" => true,
- "title" => "Connection.",
- "info" => "Connection réussie !",
- "timer" => true],
+ "title" => "Connection.",
+ "info" => "Connection réussie !",
+ "timer" => true,
+ "toSrc" => false],
// 4 Message échec
["success" => false,
"title" => "Connection.",
"info" => "Erreur, mauvais email / mot de passe.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Login avec cookie
// 5 Message réussitee
["success" => true,
- "title" => "",
- "info" => "",
- "timer" => false],
+ "title" => "",
+ "info" => "",
+ "timer" => false,
+ "toSrc" => false],
// 6 Message échec
["success" => false,
"title" => "Connection avec cookie.",
"info" => "Erreur lors de la connection automatique.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => false],
// Log out
// 7 Message global
["success" => true,
- "title" => "Déconnection.",
- "info" => "Vous êtes déconnecté!",
- "timer" => true],
+ "title" => "Déconnection.",
+ "info" => "Vous êtes déconnecté!",
+ "timer" => true,
+ "toSrc" => false],
// Ajout mission
// 8 Message réussitee
["success" => true,
"title" => "Enregistrement d'une mission.",
"info" => "Mission enregistrée !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// 9 Message échec
["success" => false,
"title" => "Enregistrement d'une mission.",
"info" => "Erreur, l'ID du consultant est probablement faux.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Ajout utilisateur
// 10 Message réussitee
["success" => true,
"title" => "Inscription",
"info" => "Utilisateur inscrit !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// 11 Message échec
["success" => false,
"title" => "Inscription.",
"info" => "Erreur, utilisateur non enregistré.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Ajout categorie
// 12 Message réussitee
["success" => true,
"title" => "Ajout d'une categorie.",
"info" => "Categorie ajoutée !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// 13 Message échec
["success" => false,
"title" => "Ajout d'une categorie.",
"info" => "Categorie non ajoutée.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// Suppression categorie
// 14 Message réussitee
["success" => true,
"title" => "Suppression d'une categorie.",
"info" => "Categorie supprimée !",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
// 15 Message échec
["success" => false,
"title" => "Suppression d'une categorie.",
"info" => "Categorie non supprimée.",
- "timer" => true],
+ "timer" => true,
+ "toSrc" => true],
];
?> \ No newline at end of file
diff --git a/Views/Includes/fr/text.php b/Views/Includes/fr/text.php
index 3b7b989..dd6d655 100644
--- a/Views/Includes/fr/text.php
+++ b/Views/Includes/fr/text.php
@@ -18,18 +18,19 @@ $text = [
"main" => "Réalisé par Debulois Quentin pour mon dossier professionel.<br>Decembre 2021, tous droits réservés.",
],
"incl_form_userInfo" => [
- "h2" => "Informations sur l'utilisateur.",
- "lastname" => "Nom",
- "firstname" => "Prénom",
- "job" => "Emploi",
- "degree" => "Diplômes",
- "capability" => "Capacités",
- "description" => "Description",
- "phoneNumber" => "Numéro de télephone",
- "adress" => "Adresse",
- "zipCode" => "Code postal",
- "city" => "Ville",
- "submit" => "Modifier"
+ "h2" => "Informations sur l'utilisateur.",
+ "lastname" => "Nom",
+ "firstname" => "Prénom",
+ "phoneNumber" => "Numéro de télephone",
+ "adress" => "Adresse",
+ "zipCode" => "Code postal",
+ "city" => "Ville",
+ "jobsSel" => "Emplois",
+ "jobsAdd" => "Ajouter",
+ "degree" => "Diplômes",
+ "capability" => "Capacités",
+ "description" => "Description",
+ "submit" => "Modifier"
],
"incl_form_login" => [
"h2" => "Identification",
diff --git a/Views/Includes/incl_form_admin.php b/Views/Includes/incl_form_admin.php
index ef34daa..7f7963d 100644
--- a/Views/Includes/incl_form_admin.php
+++ b/Views/Includes/incl_form_admin.php
@@ -9,9 +9,11 @@ require_once(dirname(__FILE__)."/".$_SESSION["lang"]."/text.php");
require_once(dirname( __FILE__ )."/".$_SESSION["lang"]."/table.php");
// Import des metodes de la base de donnée pour les recherches.
require_once(dirname( __FILE__ )."/../../Database/meth_dbadmin.php");
+require_once(dirname( __FILE__ )."/../../Database/meth_dbsearch.php");
// Instanciation de la bdd avec les méthodes de recherche.
$dbadmin = new DbAdmin;
+$dbsearch = new DbSearch;
// Form pour ajout d'une catégorie d'emploi
echo(' <!-- Separateur -->
<div class="separator"></div>
@@ -33,7 +35,7 @@ echo(' <!-- Separateur -->
<select name="delCategoryId" required>
<option value="" selected>'.$text[basename(__FILE__, ".php")]["selJobDel"].'</option>'.PHP_EOL);
-$result = $dbadmin->get_all_job_category();
+$result = $dbsearch->get_job_category_all();
for ($i = 0; $i < count($result); $i++){
echo(' <option value="'.$result[$i]["jobCategoryId"].'">'.$result[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'</option>'.PHP_EOL);
}
diff --git a/Views/Includes/incl_form_userInfo.php b/Views/Includes/incl_form_userInfo.php
index 760838d..80d61ad 100644
--- a/Views/Includes/incl_form_userInfo.php
+++ b/Views/Includes/incl_form_userInfo.php
@@ -14,14 +14,13 @@ if (!$info) {
$info = [
["lastname" => "",
"firstname" => "",
- "job" => "",
- "degree" => "",
- "capability" => "",
- "description" => "",
"phoneNumber" => "",
"adress" => "",
"zipCode" => "",
- "city" => ""]
+ "city" => "",
+ "degree" => "",
+ "capability" => "",
+ "description" => ""]
];
}
echo(' <!-- Separateur -->
@@ -39,22 +38,6 @@ echo(' <!-- Separateur -->
<input type="text" name="firstname" id="firstname" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["firstname"].'" value="'.$info[0]["firstname"].'" required>
</label>
<label>
- <i class="fas fa-wrench"></i>
- <input type="text" name="job" id="job" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["job"].'" value="'.$info[0]["job"].'">
- </label>
- <label>
- <i class="fas fa-user-graduate"></i>
- <input type="text" name="degree" id="degree" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["degree"].'"value="'.$info[0]["degree"].'">
- </label>
- <label>
- <i class="fas fa-cogs"></i>
- <textarea name="capability" id="capability" placeholder="'.$text[basename(__FILE__, ".php")]["capability"].'" cols="30" rows="2" >'.$info[0]["capability"].'</textarea>
- </label>
- <label>
- <i class="fas fa-file-signature"></i>
- <textarea name="description" id="description" placeholder="'.$text[basename(__FILE__, ".php")]["description"].'" cols="30" rows="2" >'.$info[0]["description"].'</textarea>
- </label>
- <label>
<i class="fas fa-mobile-alt"></i>
<input type="text" name="phoneNumber" id="phoneNumber" maxlength="10" placeholder="'.$text[basename(__FILE__, ".php")]["phoneNumber"].'" value="'.$info[0]["phoneNumber"].'" required>
</label>
@@ -69,8 +52,52 @@ echo(' <!-- Separateur -->
<label>
<i class="fas fa-city"></i>
<input type="text" name="city" id="city" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["city"].'" value="'.$info[0]["city"].'" required>
+ </label>'.PHP_EOL);
+// TODO : Commenter
+if ($_SESSION["isPro"]) {
+ $allJobs = $dbsearch->get_job_category_all();
+ $proJobs = $dbsearch->get_pro_job_category($_SESSION["userId"]);
+ $dictJobs = [];
+ for ($i = 0; $i < count($allJobs); $i++) {
+ $dictJobs[$allJobs[$i]["jobCategoryId"]] = $allJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])];
+ }
+ echo(' <label>
+ <i class="fas fa-wrench"></i>
+ Add a job:'.PHP_EOL);
+ // Select
+ echo(' <select id="jobsSel">
+ <option value="" selected>'.$text[basename(__FILE__, ".php")]["jobsSel"].'</option>'.PHP_EOL);
+ foreach ($dictJobs as $jobId => $jobName) {
+ echo(' <option value="'.$jobId.'">'.$jobName.'</option>'.PHP_EOL);
+ }
+ echo(' </select>
+ <button type="button" onclick="add()">'.$text[basename(__FILE__, ".php")]["jobsAdd"].'</button>
+ </label>'.PHP_EOL);
+ // Mes jobs
+ echo(' Mes jobs
+ <ul id="jobsList">'.PHP_EOL);
+ for ($i = 0; $i < count($proJobs); $i++) {
+ echo(' <li>'.$dictJobs[$proJobs[$i]].'</li>'.PHP_EOL);
+ }
+ echo(' </ul>
+ <input type="hidden" name="jobs" id="jobs" value="">'.PHP_EOL);
+ // Keep going
+ echo(' <label>
+ <i class="fas fa-user-graduate"></i>
+ <input type="text" name="degree" id="degree" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["degree"].'"value="'.$info[0]["degree"].'" required>
</label>
- <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ <label>
+ <i class="fas fa-cogs"></i>
+ <textarea name="capability" id="capability" placeholder="'.$text[basename(__FILE__, ".php")]["capability"].'" cols="30" rows="2" required>'.$info[0]["capability"].'</textarea>
+ </label>
+ <label>
+ <i class="fas fa-file-signature"></i>
+ <textarea name="description" id="description" placeholder="'.$text[basename(__FILE__, ".php")]["description"].'" cols="30" rows="2" required>'.$info[0]["description"].'</textarea>
+ </label>'.PHP_EOL);
+}
+echo(' <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
</form>
- </div>')
+ </div>
+ <script src="/Statics/Js/userinfo.js"></script>
+ <script>init()</script>')
?> \ No newline at end of file
diff --git a/Views/Includes/incl_global_message.php b/Views/Includes/incl_global_message.php
index b4b653d..b15d00e 100644
--- a/Views/Includes/incl_global_message.php
+++ b/Views/Includes/incl_global_message.php
@@ -14,9 +14,19 @@ if ($message[$_SESSION["messageNumber"]]["success"]) {
echo("<p>".$message[$_SESSION["messageNumber"]]["info"]."</p>");
echo('<p id="redirect" class="info">'.$redirect.'</p></div>');
echo('<script src="/Statics/Js/main.js"></script>');
+echo('<script src="/Statics/Js/message.js"></script>');
+if ($message[$_SESSION["messageNumber"]]["toSrc"]) {
+ if ($_SESSION["src"] !== "index") {
+ $dest = "Views/".$_SESSION["src"];
+ } else {
+ $dest = "index";
+ }
+} else {
+ $dest = "index";
+}
if ($message[$_SESSION["messageNumber"]]["timer"]) {
- echo('<script>start_timer();</script>');
+ echo('<script>start_timer("'.$dest.'");</script>');
} else {
- echo('<script>redirect("/index")</script>');
+ echo('<script>redirect("'.$dest.'")</script>');
}
?> \ No newline at end of file
diff --git a/Views/Includes/incl_table_myMission.php b/Views/Includes/incl_table_myMission.php
index 35e69d4..b4c7e04 100644
--- a/Views/Includes/incl_table_myMission.php
+++ b/Views/Includes/incl_table_myMission.php
@@ -7,7 +7,7 @@ require_once(dirname(__FILE__)."/".$_SESSION["lang"]."/text.php");
// Import des en-tête des tables.
require_once(dirname(__FILE__)."/".$_SESSION["lang"]."/table.php");
// Import des metodes de la base de donnée pour les recherches.
-require_once(dirname(__FILE__)."/../../Database/meth_dbsearch.php");
+require_once(dirname(__FILE__)."/../../Database/meth_dbmission.php");
// Instanciation de la bdd avec les méthodes de recherche.
$dbmission = new DbMission;
// Recherches des missions avec l'id de l'utilisateur actuellement connecté.
diff --git a/Views/message.php b/Views/message.php
index 489d01f..f2a93a5 100644
--- a/Views/message.php
+++ b/Views/message.php
@@ -24,6 +24,7 @@ if (!isset($_SESSION["messageNumber"])) {
<?php require_once(dirname( __FILE__ )."/Includes/incl_global_navbar.php"); ?>
<?php require_once(dirname( __FILE__ )."/Includes/incl_global_message.php"); ?>
<?php require_once(dirname( __FILE__ )."/Includes/incl_global_footer.php"); ?>
+ <script src="/Statics/Js/main.js"></script>
</body>
</html>
<?php unset($_SESSION["messageNumber"]); ?>
diff --git a/Wrapper/Functions/func_info.php b/Wrapper/Functions/func_info.php
index 97c12c5..b5013e2 100644
--- a/Wrapper/Functions/func_info.php
+++ b/Wrapper/Functions/func_info.php
@@ -2,13 +2,15 @@
// ****************************************************************************
// Description: Fonction de modifications des informations de l'utilisateur par ID
// ****************************************************************************
-function modify_user_info($lastname, $firstname, $job, $degree,
- $capabilty, $description, $phoneNumber,
- $adress, $zipCode, $city, $userId) {
- $dbuser = new DbUser;
- $dbuser->user_infos_update($lastname, $firstname, $job, $degree,
- $capabilty, $description, $phoneNumber,
- $adress, $zipCode, $city, $userId);
+function modify_user_info($userInfos, $userId, $isPro) {
+ $dbuser = new DbUser;
+ $dbsearch = new DbSearch;
+ if ($isPro) {
+ $userJobs = $dbsearch->get_pro_job_category($userId);
+ $dbuser->user_infos_update($userInfos, $userId, $isPro, $userJobs);
+ } else {
+ $dbuser->user_infos_update($userInfos, $userId, $isPro);
+ }
// Redirection vers message avec l'index du message à afficher.
$messageNumber = 2;
$_SESSION["messageNumber"] = $messageNumber;
diff --git a/Wrapper/Functions/func_login.php b/Wrapper/Functions/func_login.php
index 39cf931..488f592 100644
--- a/Wrapper/Functions/func_login.php
+++ b/Wrapper/Functions/func_login.php
@@ -4,8 +4,7 @@
// 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 = false) {
- print_r($email, $pass);
+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
diff --git a/Wrapper/wrapper.php b/Wrapper/wrapper.php
index 62077c2..13e0713 100644
--- a/Wrapper/wrapper.php
+++ b/Wrapper/wrapper.php
@@ -44,16 +44,16 @@ if (isset($_SESSION["src"])) {
&& $_POST["password"] !== ""
) {
if (isset($_POST["rememberMe"]) && $_POST["rememberMe"] == "on") {
- $_POST["rememberMe"] = true;
+ $_POST["rememberMe"] = 1;
} else {
- $_POST["rememberMe"] = false;
+ $_POST["rememberMe"] = 0;
}
login(0, $_POST["email"], $_POST["password"], $_POST["rememberMe"]);
// Condition pour une connection auto
} elseif ($_SESSION["src"] == "autoLogin"
&& isset($_COOKIE["autoLogin"])
- && $_SESSION["loggedIn"] == false
+ && $_SESSION["loggedIn"]
) {
// Si connection par cookie, on le décode avant de le passer à la fonction.
login(json_decode(base64_decode($_COOKIE["autoLogin"])));
@@ -61,7 +61,7 @@ if (isset($_SESSION["src"])) {
// Condition pour une déconnection
} elseif ($_SESSION["src"] == "logout"
&& isset($_SESSION["loggedIn"])
- && $_SESSION["loggedIn"] == true
+ && $_SESSION["loggedIn"]
) {
logout();
@@ -96,28 +96,39 @@ if (isset($_SESSION["src"])) {
);
// Condition pour une modification des infos
- } elseif ($_SESSION["src"] == "userInfo"
- && isset($_SESSION["loggedIn"], $_SESSION["userId"],
- $_POST["lastname"], $_POST["firstname"], $_POST["job"],
- $_POST["degree"], $_POST["capability"], $_POST["description"],
- $_POST["phoneNumber"], $_POST["adress"], $_POST["zipCode"], $_POST["city"]
- )
- && $_SESSION["loggedIn"] == true && $_SESSION["userId"] !== ""
- && $_POST["lastname"] !== "" && $_POST["firstname"] !== ""
+ } elseif ($_SESSION["src"] == "userInfo"
+ // Vérification des données si client
+ && (isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["isClient"],
+ $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"],
+ $_POST["adress"], $_POST["zipCode"], $_POST["city"]
+ )
+ && $_SESSION["isClient"]
+ && $_POST["lastname"] !== "" && $_POST["firstname"] !== ""
+ && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== ""
+ && $_POST["zipCode"] !== "" && $_POST["city"] !== ""
+ // Ou si pro
+ || isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["isPro"],
+ $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"],
+ $_POST["adress"], $_POST["zipCode"], $_POST["city"], $_POST["jobs"],
+ $_POST["degree"], $_POST["capability"], $_POST["description"]
+ )
+ && $_SESSION["isPro"]
+ && $_POST["lastname"] !== "" && $_POST["firstname"] !== ""
+ && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== ""
+ && $_POST["zipCode"] !== "" && $_POST["city"] !== ""
+ && $_POST["degree"] !== "" && $_POST["capability"] !== ""
+ && $_POST["description"] !== ""
+ )
) {
- modify_user_info($_POST["lastname"], $_POST["firstname"], $_POST["job"],
- $_POST["degree"], $_POST["capability"], $_POST["description"],
- $_POST["phoneNumber"], $_POST["adress"], $_POST["zipCode"],
- $_POST["city"], $_SESSION["userId"]
- );
+ modify_user_info($_POST, $_SESSION["userId"], $_SESSION["isPro"]);
// Condition pour l'administration du site
} elseif ($_SESSION["src"] == "admin"
&& isset($_SESSION["loggedIn"],
$_SESSION["isAdmin"],
)
- && $_SESSION["loggedIn"] == true
- && $_SESSION["isAdmin"] == true
+ && $_SESSION["loggedIn"]
+ && $_SESSION["isAdmin"]
&& (isset($_POST["userId"])
|| isset($_POST["addCategoryNameEn"],
$_POST["addCategoryNameFr"]
@@ -125,6 +136,7 @@ if (isset($_SESSION["src"])) {
|| isset($_POST["delCategoryId"])
)
) {
+ // Suppression d'un utilisateur
if (isset($_POST["userId"])
&& $_POST["userId"] !== ""
) {
@@ -149,8 +161,8 @@ if (isset($_SESSION["src"])) {
$_POST["subject"], $_POST["note"],
$_POST["review"], $_POST["proId"]
)
- && $_SESSION["loggedIn"] == true
- && $_SESSION["isClient"] == true
+ && $_SESSION["loggedIn"]
+ && $_SESSION["isClient"]
&& $_POST["subject"] !== ""
&& $_POST["note"] !== ""
&& $_POST["review"] !== ""
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..7c550a3
--- /dev/null
+++ b/favicon.ico
Binary files differ
diff --git a/index.php b/index.php
index ed9b111..704a40b 100644
--- a/index.php
+++ b/index.php
@@ -44,6 +44,7 @@ if (isset($_COOKIE["autoLogin"]) && $_SESSION["loggedIn"] == false) {
<?php require_once("./Views/Includes/incl_index_search.php");?>
<?php require_once("./Views/Includes/incl_global_footer.php"); ?>
<script src="/Statics/Js/main.js"></script>
+ <script src="/Statics/Js/index.js"></script>
<!-- Activation du slider -->
<script>start_slideshow();</script>
</body>
diff --git a/todo.txt b/todo.txt
index 63936ec..f117a58 100644
--- a/todo.txt
+++ b/todo.txt
@@ -7,7 +7,7 @@
- Revoir front Client & Pro
- Requète de mission pour un pro sur le moteur de recherche. (3)
- Page mes missions, passés, en cours, terminées. (3)
- - Revoir mes infos pour adapter aux clients & pros. (2)
+ - Revoir mes infos pour adapter aux clients & pros. (DONE)
- Revoir front Admin
- Doit pouvoir supprimer une mission (4)