diff options
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 Binary files differindex 4f69087..4f69087 100644 --- a/Documents_et_infos/Anciennes_versions_avant_git.zip +++ b/Anciennes_versions_avant_git.zip 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 Binary files differdeleted file mode 100644 index 3a7249d..0000000 --- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb +++ /dev/null diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak Binary files differdeleted file mode 100644 index 570f173..0000000 --- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak +++ /dev/null diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png Binary files differdeleted file mode 100644 index a9b8e1c..0000000 --- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index b236126..0000000 --- a/Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpg +++ /dev/null diff --git a/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg b/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg Binary files differdeleted file mode 100644 index 5a7303b..0000000 --- a/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg +++ /dev/null diff --git a/Documents_et_infos/Structure_plan_de_site/html5_balises.jpg b/Documents_et_infos/Structure_plan_de_site/html5_balises.jpg Binary files differdeleted file mode 100644 index 873958d..0000000 --- a/Documents_et_infos/Structure_plan_de_site/html5_balises.jpg +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5aef760..0000000 --- a/Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpg +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4aea17c..0000000 --- a/Documents_et_infos/Structure_plan_de_site/structure_projet_web.jpg +++ /dev/null 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 Binary files differdeleted file mode 100644 index 2e4a256..0000000 --- a/Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpg +++ /dev/null diff --git a/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz b/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz Binary files differdeleted file mode 100644 index 723e951..0000000 --- a/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz +++ /dev/null diff --git a/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz b/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz Binary files differdeleted file mode 100644 index a2051a0..0000000 --- a/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz +++ /dev/null diff --git a/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg b/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg Binary files differdeleted file mode 100644 index 8519988..0000000 --- a/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg +++ /dev/null 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); |
