summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.htaccess1
-rw-r--r--Anciennes_versions_avant_git.zip (renamed from Documents_et_infos/Anciennes_versions_avant_git.zip)bin1217591 -> 1217591 bytes
-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
-rw-r--r--Core/wrapper.php14
-rw-r--r--Database/dbmain.php6
-rw-r--r--Database/meth_dbadmin.php36
-rw-r--r--Database/meth_dbmission.php10
-rw-r--r--Database/meth_dbuser.php14
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.mwbbin13477 -> 0 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bakbin13489 -> 0 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.pngbin47039 -> 0 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.sql143
-rw-r--r--Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpgbin202720 -> 0 bytes
-rw-r--r--Documents_et_infos/Structure_plan_de_site/depth_optimised.jpgbin76763 -> 0 bytes
-rw-r--r--Documents_et_infos/Structure_plan_de_site/html5_balises.jpgbin71847 -> 0 bytes
-rw-r--r--Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpgbin383335 -> 0 bytes
-rw-r--r--Documents_et_infos/Structure_plan_de_site/structure_projet_web.jpgbin271075 -> 0 bytes
-rw-r--r--Documents_et_infos/Zooning_maquette_graphique/infos_css.txt19
-rw-r--r--Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpgbin32246 -> 0 bytes
-rw-r--r--Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgzbin64354 -> 0 bytes
-rw-r--r--Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgzbin13568 -> 0 bytes
-rw-r--r--Documents_et_infos/cahier_des_charges_fonctionnalitees.jpgbin317462 -> 0 bytes
-rw-r--r--Documents_et_infos/infos_generales.txt73
-rw-r--r--Static/Css/login.css1
-rw-r--r--Static/Css/main.css1
-rw-r--r--Static/Js/register.js2
-rw-r--r--Template/Include/incl_form_admin.php8
30 files changed, 70 insertions, 301 deletions
diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000..45552cb
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1 @@
+Options -Indexes \ No newline at end of file
diff --git a/Documents_et_infos/Anciennes_versions_avant_git.zip b/Anciennes_versions_avant_git.zip
index 4f69087..4f69087 100644
--- a/Documents_et_infos/Anciennes_versions_avant_git.zip
+++ b/Anciennes_versions_avant_git.zip
Binary files differ
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:
diff --git a/Core/wrapper.php b/Core/wrapper.php
index 925402a..cc2c243 100644
--- a/Core/wrapper.php
+++ b/Core/wrapper.php
@@ -68,13 +68,13 @@ if (isset($_SESSION["src"])) {
) {
if ($_POST["moreInfoProId"]) {
- search($_POST["moreInfoProId"], 0);
+ search($_POST["moreInfoProId"], false);
} elseif ($_POST["searchByName"]) {
- search($_POST["searchByName"], 1);
+ search($_POST["searchByName"], "lastname");
} elseif ($_POST["searchByJob"]) {
- search($_POST["searchByJob"], 2);
+ search($_POST["searchByJob"], "jobid");
} else {
http_response_code(404);
@@ -109,17 +109,17 @@ if (isset($_SESSION["src"])) {
&& $_POST["password"] !== ""
) {
if (isset($_POST["rememberMe"]) && $_POST["rememberMe"] == "on") {
- $_POST["rememberMe"] = 1;
+ $_POST["rememberMe"] = true;
} else {
- $_POST["rememberMe"] = 0;
+ $_POST["rememberMe"] = false;
}
- login(0, $_POST["email"], $_POST["password"], $_POST["rememberMe"]);
+ login(false, false, $_POST["email"], $_POST["password"], $_POST["rememberMe"]);
} elseif ($_SESSION["src"] == "autoLogin"
&& isset($_COOKIE["autoLogin"])
) {
// Si connection par cookie, on le décode avant de le passer à la fonction.
- login(json_decode(base64_decode($_COOKIE["autoLogin"])));
+ login(1, json_decode(base64_decode($_COOKIE["autoLogin"])));
// ****************************************************************************
diff --git a/Database/dbmain.php b/Database/dbmain.php
index aeecde2..3aca972 100644
--- a/Database/dbmain.php
+++ b/Database/dbmain.php
@@ -135,10 +135,10 @@ class DbMain {
// Noms des tables
protected $tableUserAccount = "userAccount";
- protected $tableUserInfo = "userInfo";
+ protected $tableUserInfo = "userInfo";
protected $tableJobCategory = "jobCategory";
- protected $tableUserJob = "userJob";
- protected $tableMission = "mission";
+ protected $tableUserJob = "userJob";
+ protected $tableMission = "mission";
// ****************************************************************************
// FONCTIONS PRINCIPALES
diff --git a/Database/meth_dbadmin.php b/Database/meth_dbadmin.php
index a62f025..0173fce 100644
--- a/Database/meth_dbadmin.php
+++ b/Database/meth_dbadmin.php
@@ -55,11 +55,11 @@ class DbAdmin extends DbMain {
$reqDelUser = "DELETE FROM ".$this->tableUserAccount." WHERE userId = ?";
// Exécution de la requète
$this->exec_cmd($reqDelUser, array($userId));
- // Retourne 1 pour réussite
- return 1;
+ // Retourne true pour réussite
+ return true;
} else {
- // Retourne 0 pour échec
- return 0;
+ // Retourne false pour échec
+ return false;
}
}
@@ -101,15 +101,15 @@ class DbAdmin extends DbMain {
(? ,?)";
// Exécution de la requète
$this->exec_cmd($reqjobCategoryNameAdd, array($jobNameEn, $jobNameFr));
- // Retourne 1 pour réussite
- return 1;
+ // Retourne true pour réussite
+ return true;
} else {
- // Retourne 0 pour échec
- return 0;
+ // Retourne false pour échec
+ return false;
}
} else {
- // Retourne 0 pour échec
- return 0;
+ // Retourne false pour échec
+ return false;
}
}
@@ -138,11 +138,11 @@ class DbAdmin extends DbMain {
jobCategoryId = ?";
// Exécution de la requète
$this->exec_cmd($reqDelJobCategory, array($jobId));
- // Retourne 1 pour réussite
- return 1;
+ // Retourne true pour réussite
+ return true;
} else {
- // Retourne 0 pour échec
- return 0;
+ // Retourne false pour échec
+ return false;
}
}
@@ -172,11 +172,11 @@ class DbAdmin extends DbMain {
missionId = ?";
// Exécution de la requète
$this->exec_cmd($reqDelMission, array($missionId));
- // Retourne 1 pour réussite
- return 1;
+ // Retourne true pour réussite
+ return true;
} else {
- // Retourne 0 pour échec
- return 0;
+ // Retourne false pour échec
+ return false;
}
}
diff --git a/Database/meth_dbmission.php b/Database/meth_dbmission.php
index bd23506..c4bff5c 100644
--- a/Database/meth_dbmission.php
+++ b/Database/meth_dbmission.php
@@ -29,7 +29,7 @@ class DbMission extends DbMain {
(?, ?, ?, ?, ?)";
// Exécution de la requète
$this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $subject, $clientId, $proId, $jobId));
- return 1;
+ return true;
}
// Enregistrement d'une mission
@@ -44,7 +44,7 @@ class DbMission extends DbMain {
missionId = ?";
// Exécution de la requète
$this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId));
- return 1;
+ return true;
}
final public function validate_mission_pro_by_missionid($missionId) {
@@ -58,7 +58,7 @@ class DbMission extends DbMain {
missionId = ?";
// Exécution de la requète
$this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId));
- return 1;
+ return true;
}
final public function validate_mission_client_by_missionid($missionId) {
@@ -72,7 +72,7 @@ class DbMission extends DbMain {
missionId = ?";
// Exécution de la requète
$this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId));
- return 1;
+ return true;
}
final public function review_mission($missionId, $review, $note) {
@@ -86,7 +86,7 @@ class DbMission extends DbMain {
missionId = ?";
// Exécution de la requète
$this->exec_cmd($reqAddMission, array($review, $note, $missionId));
- return 1;
+ return true;
}
// ****************************************************************************
diff --git a/Database/meth_dbuser.php b/Database/meth_dbuser.php
index 889a39d..47ec82c 100644
--- a/Database/meth_dbuser.php
+++ b/Database/meth_dbuser.php
@@ -39,11 +39,11 @@ class DbUser extends DbMain {
$userStatus
)
);
- // Retourne 1 pour réussite
- return 1;
+ // Retourne true pour réussite
+ return true;
} else {
- // Retourne 0 pour échec
- return 0;
+ // Retourne false pour échec
+ return false;
}
}
@@ -116,7 +116,7 @@ class DbUser extends DbMain {
// array_value -> Qu'est ce qui est présent dans 1 mais pas dans 2 ?
// Comparaison des jobs anciennement présent avec ceux sélectionnés, donc ajoutés.
$jobsAdded = array_values(array_diff($selectedJobs, $userJobs));
- // Comparaison des jobs deja présent avec ceux sélectionnés, donc ajoutés.
+ // Comparaison des jobs deja présent avec ceux sélectionnés, donc supprimés.
$jobsRemoved = array_values(array_diff($userJobs, $selectedJobs));
// on continue classiquement avec les autres éléments
$args = array_values($userInfos);
@@ -165,7 +165,7 @@ class DbUser extends DbMain {
WHERE
email = ?";
// Execution de la requète
- $this->exec_cmd($reqUpdateToken, array($token, $email))->fetchAll(PDO::FETCH_ASSOC);
+ $this->exec_cmd($reqUpdateToken, array($token, $email));
}
// Supression du jeton d'auto-login
@@ -179,7 +179,7 @@ class DbUser extends DbMain {
WHERE
email = ?";
// Execution de la requète
- $this->exec_cmd($reqDeleteToken, array($email))->fetchAll(PDO::FETCH_ASSOC);
+ $this->exec_cmd($reqDeleteToken, array($email));
}
}
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
deleted file mode 100644
index 3a7249d..0000000
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
deleted file mode 100644
index 570f173..0000000
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
deleted file mode 100644
index a9b8e1c..0000000
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql b/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
deleted file mode 100644
index 1189648..0000000
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
+++ /dev/null
@@ -1,143 +0,0 @@
--- MySQL Script generated by MySQL Workbench
--- Sun Mar 13 12:15:01 2022
--- Model: New Model Version: 1.0
--- MySQL Workbench Forward Engineering
-
-SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
-SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
-SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-
--- -----------------------------------------------------
--- Schema exophp
--- -----------------------------------------------------
-
--- -----------------------------------------------------
--- Schema exophp
--- -----------------------------------------------------
-CREATE SCHEMA IF NOT EXISTS `exophp` DEFAULT CHARACTER SET utf8 ;
-USE `exophp` ;
-
--- -----------------------------------------------------
--- Table `exophp`.`userAccount`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `exophp`.`userAccount` (
- `userId` INT UNSIGNED NOT NULL AUTO_INCREMENT,
- `email` VARCHAR(128) NOT NULL,
- `password` VARCHAR(128) NOT NULL,
- `tokenAutoLogin` VARCHAR(128) NULL DEFAULT NULL,
- `inscriptionDate` TIMESTAMP NOT NULL,
- `isClient` TINYINT(1) UNSIGNED NOT NULL,
- `isPro` TINYINT(1) UNSIGNED NOT NULL,
- `isAdmin` TINYINT(1) UNSIGNED NOT NULL,
- PRIMARY KEY (`userId`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
-
--- -----------------------------------------------------
--- Table `exophp`.`jobCategrory`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `exophp`.`jobCategrory` (
- `jobCategoryId` INT UNSIGNED NOT NULL AUTO_INCREMENT,
- `jobCategoryNameEn` VARCHAR(128) NOT NULL,
- `jobCategoryNameFr` VARCHAR(128) NOT NULL,
- PRIMARY KEY (`jobCategoryId`))
-ENGINE = InnoDB;
-
-
--- -----------------------------------------------------
--- Table `exophp`.`mission`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `exophp`.`mission` (
- `missionId` INT UNSIGNED NOT NULL AUTO_INCREMENT,
- `date` TIMESTAMP NOT NULL,
- `subject` VARCHAR(128) NOT NULL,
- `note` TINYINT(1) UNSIGNED NULL DEFAULT NULL,
- `review` TEXT NULL DEFAULT NULL,
- `acceptedByPro` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
- `validatedByClient` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
- `validatedByPro` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
- `clientId` INT UNSIGNED NOT NULL,
- `proId` INT UNSIGNED NOT NULL,
- `jobCategroryId` INT UNSIGNED NOT NULL,
- PRIMARY KEY (`missionId`),
- INDEX `fk_mission_clientId_idx` (`clientId` ASC) VISIBLE,
- INDEX `fk_mission_proId_idx` (`proId` ASC) VISIBLE,
- INDEX `fk_mission_jobCategroryId_idx` (`jobCategroryId` ASC) VISIBLE,
- CONSTRAINT `fk_mission_userId`
- FOREIGN KEY (`clientId`)
- REFERENCES `exophp`.`userAccount` (`userId`)
- ON DELETE NO ACTION
- ON UPDATE NO ACTION,
- CONSTRAINT `fk_mission_consultantId`
- FOREIGN KEY (`proId`)
- REFERENCES `exophp`.`userAccount` (`userId`)
- ON DELETE NO ACTION
- ON UPDATE NO ACTION,
- CONSTRAINT `fk_mission_jobcategrory1`
- FOREIGN KEY (`jobCategroryId`)
- REFERENCES `exophp`.`jobCategrory` (`jobCategoryId`)
- ON DELETE NO ACTION
- ON UPDATE NO ACTION)
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
-
--- -----------------------------------------------------
--- Table `exophp`.`userInfo`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `exophp`.`userInfo` (
- `lastName` VARCHAR(128) NOT NULL,
- `firstName` VARCHAR(128) NOT NULL,
- `phoneNumber` VARCHAR(10) NOT NULL,
- `adress` VARCHAR(128) NOT NULL,
- `zipCode` VARCHAR(6) NOT NULL,
- `city` VARCHAR(128) NOT NULL,
- `degree` VARCHAR(128) NULL DEFAULT NULL,
- `capability` TEXT NULL DEFAULT NULL,
- `description` TEXT NULL DEFAULT NULL,
- `userId` INT UNSIGNED NOT NULL,
- PRIMARY KEY (`userId`),
- INDEX `fk_userinfo_userId_idx` (`userId` ASC) VISIBLE,
- CONSTRAINT `fk_userinfo_userId`
- FOREIGN KEY (`userId`)
- REFERENCES `exophp`.`userAccount` (`userId`)
- ON DELETE CASCADE
- ON UPDATE CASCADE)
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
-
--- -----------------------------------------------------
--- Table `exophp`.`category`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `exophp`.`category` (
- `category_id` INT NOT NULL,
- `name` VARCHAR(255) NOT NULL,
- PRIMARY KEY (`category_id`));
-
-
--- -----------------------------------------------------
--- Table `exophp`.`userJob`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `exophp`.`userJob` (
- `jobCategroryId` INT UNSIGNED NOT NULL,
- `userId` INT UNSIGNED NOT NULL,
- INDEX `fk_userJob_jobcategrory1_idx` (`jobCategroryId` ASC) VISIBLE,
- INDEX `fk_userJob_userinfo1_idx` (`userId` ASC) VISIBLE,
- CONSTRAINT `fk_userJob_jobCategroryId`
- FOREIGN KEY (`jobCategroryId`)
- REFERENCES `exophp`.`jobCategrory` (`jobCategoryId`)
- ON DELETE NO ACTION
- ON UPDATE NO ACTION,
- CONSTRAINT `fk_userJob_userId`
- FOREIGN KEY (`userId`)
- REFERENCES `exophp`.`userInfo` (`userId`)
- ON DELETE NO ACTION
- ON UPDATE NO ACTION)
-ENGINE = InnoDB;
-
-
-SET SQL_MODE=@OLD_SQL_MODE;
-SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
-SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
diff --git a/Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpg b/Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpg
deleted file mode 100644
index b236126..0000000
--- a/Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpg
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg b/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg
deleted file mode 100644
index 5a7303b..0000000
--- a/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Structure_plan_de_site/html5_balises.jpg b/Documents_et_infos/Structure_plan_de_site/html5_balises.jpg
deleted file mode 100644
index 873958d..0000000
--- a/Documents_et_infos/Structure_plan_de_site/html5_balises.jpg
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpg b/Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpg
deleted file mode 100644
index 5aef760..0000000
--- a/Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpg
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Structure_plan_de_site/structure_projet_web.jpg b/Documents_et_infos/Structure_plan_de_site/structure_projet_web.jpg
deleted file mode 100644
index 4aea17c..0000000
--- a/Documents_et_infos/Structure_plan_de_site/structure_projet_web.jpg
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt b/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt
deleted file mode 100644
index 33af86c..0000000
--- a/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Ressources:
-https://github.com/bradtraversy/design-resources-for-developers
-https://www.photopea.com/
-
-Tailles écrans:
-https://gbksoft.com/blog/common-screen-sizes-for-responsive-web-design/
-https://www.w3schools.com/browsers/browsers_display.asp
-https://99designs.fr/blog/design-web-digital/lconception-sites-web-adaptatifs/
-
-Infos utiles:
-https://kinsta.com/fr/wp-content/uploads/sites/4/2020/09/points-rupture-responsives-bootstrap.png
-https://raidboxes.io/fr/blog/webdesign-development/webdesign-trends-2021/
-https://webdesign.tutsplus.com/tutorials/how-to-create-a-frosted-glass-effect-in-css--cms-32535
-
-Fonds:
-https://unsplash.com/photos/eMNevd6ErCU
-
-Lisibilité et texte:
-http://all-for-design.com/web-design/lisibilite-des-sites-web-font-size-100-16px/ \ No newline at end of file
diff --git a/Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpg b/Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpg
deleted file mode 100644
index 2e4a256..0000000
--- a/Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpg
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz b/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz
deleted file mode 100644
index 723e951..0000000
--- a/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz b/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz
deleted file mode 100644
index a2051a0..0000000
--- a/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg b/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg
deleted file mode 100644
index 8519988..0000000
--- a/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg
+++ /dev/null
Binary files differ
diff --git a/Documents_et_infos/infos_generales.txt b/Documents_et_infos/infos_generales.txt
deleted file mode 100644
index 05ef1f6..0000000
--- a/Documents_et_infos/infos_generales.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-*******************************************************************************
- Infos: Déroulé de la réalisation de l'exercice.
-*******************************************************************************
-
-Le cahier des charges que je me suis fixé pour cet exercice est un peu plus chargé
-que ce qui était demandé initalement:
--Mettre en place un sytème de client / consultant (et non uniquement pour moi).
--Mettre en place un système d'inscription.
--Mettre en place un système de connection.
--Rechercher par nom un consultant.
--Afficher les capacités d'un consultant.
--Pouvoir enregistrer et noter une mission effectuée auprès d'un consultant en
-tant que client.
--Pouvoir supprimer un utilisateur du site.
-
-Pour cet exercice, j'ai tout d'abord voulu créer mes pages web indépendamment les
-unes des autres (index, login, register, etc...), il m'a rapidement paru évident
-de séparer la gestion de la base de données dans un fichier à part, et mettre ce
-système dans une classe m'a également paru être un bon choix car on pouvait avec
-une classe définir les différents paramatres de connection à la base de données
-dans les attributs de cette dernière et initier la connection à l'instanciation.
-Ce système me permettait de mettre en place des requêtes en créant des méthodes et la classe
-grossissant j'ai décidé de la scinder en trois, le fichier principal contenant les
-informations de connection et d'initialisation de la base de données ainsi que quelques
-requêtes basiques, un second fichier contenant toutes les méthodes pour effectuer des
-recherches, et un dernier fichier contenant toutes les méthodes permettant de pouvoir
-modifier les éléments de la base de données.
-
-En avancant dans l'exercice, j'ai voulu séparer la partie "logique" (traitement des données)
-de la partie "rendue" (partie envoyée au client), les fichiers grossissants rapidement
-cela permettait de gérer plus clairement ces deux parties du site.
-
-J'ai alors décidé de faire un fichier logique que j'ai appelé "wrapper",
-ce wrapper avait deux objectifs:
-- Récupérer les données transmises par les formulaires.
-- Effectuer toute la partie logique (le traitement des données).
-Je souhaitais renvoyer toutes les données vers un seul fichier pour minimiser
-l'exposition d'informations transmises au client quand au fonctionnement du site web,
-dans une optique de sécurité je souhaite afficher au client
-uniquement le strict minimum. Ce fichier wrapper a lui aussi rapidement grossi,
-et dans un soucis de lisibilité et de facilité de maintenance, j'ai décidé de le diviser
-en plusieurs fichiers qui sont devenus ses fonctions.
-
-Enfin la partie "rendue" contenait les différentes pages accessibles par le client,
-voulant éviter la répétition dans les différentes pages, j'ai séparé les parties
-communes dans des fichiers à part (header, navbar, footer) cela me permettait en
-modifiant un seul fichier de modifier le rendu sur toutes les pages, et dans un
-soucis d'uniformité, j'ai décidé de "sortir" également les parties principales des
-différentes pages et de placer le tout dans un dossier nommé "includes" dans lequel
-les pages pourraient importer leur contenu. Enfin pour la gestion des langues, il
-m'a paru opportun de créer des fichiers contenant le texte pour chaque langue à la
-manière de fichier de traduction pour vidéo, et le site allait importer ensuite le
-fichier en fonction de la langue sélectionnée, pour le faire j'ai créé deux dossiers
-"fr" et "en" et je change la source de l'import en fonction de la langue choisie
-par le client.
-
-Pour permettre une retention d'information entre les pages, le système de session
-m'a paru inévitable et grâce à ce dernier, j'ai pu mettre en place le système
-de changement de langue (défini dans une variable de cette dernière), un système de
-connection (on affiche différents éléments en fonction du contenu de variable défini dans la session).
-
-J'ai également choisi de créer un système d'auto-connection car je voulais
-expérimenter l'utilisation de cookie en PHP pour mettre en place ce système
-le but était de créer un "jeton d'auto-connection": une chaine de caractères aléatoires
-permettant la connection, valable une seule fois et qui serait stoqué 7 jours
-sur le navigateur du client. La session ne restant ouverte
-par défaut que 24 min (https://stackoverflow.com/questions/9904105/php-sessions-default-timeout).
-
-Pour la charte graphique, j'ai mis en place ce qui me parait être la structure la plus basique
-pour un site web: En-tête avec barre de navigation -> corps de la page -> pied de page.
-J'ai choisi un style clair, anguleux et épuré avec une dominance pour le rouge.
-
-Et enfin pour pouvoir faire un peu de JS, j'ai choisi de créer un slideshow.
diff --git a/Static/Css/login.css b/Static/Css/login.css
index 6392f31..465985f 100644
--- a/Static/Css/login.css
+++ b/Static/Css/login.css
@@ -13,7 +13,6 @@
display: flex;
flex-direction: column;
align-items: center;
- justify-content: space-around;
gap: 1em;
padding: 1.5% 5%;
}
diff --git a/Static/Css/main.css b/Static/Css/main.css
index cbb7849..1d8a9f0 100644
--- a/Static/Css/main.css
+++ b/Static/Css/main.css
@@ -113,7 +113,6 @@ html {
}
body {
-
min-height: 100vh;
font-family: SourceSansPro;
display: flex;
diff --git a/Static/Js/register.js b/Static/Js/register.js
index c0d9df2..1876c7e 100644
--- a/Static/Js/register.js
+++ b/Static/Js/register.js
@@ -15,7 +15,7 @@
const regNum = new RegExp(/[0-9]/);
const regUpper = new RegExp(/[A-Z]/);
const regSpecial = new RegExp(/[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~µ°€£]/);
-const regEmail = new RegExp(/^[a-z0-9._-]+@[a-z0-9-]+.[a-z]+$/)
+const regEmail = new RegExp(/^[a-z0-9._-]+@[a-z0-9-]+\.[a-z]+$/)
// Initialisation des variables
let validEmail;
diff --git a/Template/Include/incl_form_admin.php b/Template/Include/incl_form_admin.php
index 16385c0..493e854 100644
--- a/Template/Include/incl_form_admin.php
+++ b/Template/Include/incl_form_admin.php
@@ -17,8 +17,8 @@ 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.
-$dbadmin = new DbAdmin;
-$dbsearch = new DbSearch;
+$dbadmin = new DbAdmin;
+$dbsearch = new DbSearch;
$dbmission = new DbMission;
// ****************************************************************************
@@ -170,7 +170,7 @@ for ($i = 0; $i < count($allMissions); $i++) {
<tr>".PHP_EOL);
for ($j = 0; $j < count($allMissions[$i]); $j++) {
switch ($j) {
- case 8 :
+ case 8 : // Si Id du client 8 ou Id du pro 9
case 9 :
$userInfo = $dbsearch->get_user_info_by_userid($allMissions[$i][$j]);
if ($userInfo && $userInfo[0]["lastname"] !== "") {
@@ -179,7 +179,7 @@ for ($i = 0; $i < count($allMissions); $i++) {
echo(" <td><pre> N/A </pre></td>".PHP_EOL);
}
break;
- case 10:
+ case 10: // Id du job 10
$job = $dbsearch->get_job_by_jobid($allMissions[$i][$j]);
if ($job && $job[0]["jobCategoryName".ucwords($_SESSION["lang"])] !== "") {
echo(" <td><pre>".$job[0]["jobCategoryName".ucwords($_SESSION["lang"])]."</pre></td>".PHP_EOL);