diff options
| author | Debulois <quentin@debulois.fr> | 2022-07-13 13:13:45 +0200 |
|---|---|---|
| committer | Debulois <quentin@debulois.fr> | 2022-07-15 14:24:02 +0200 |
| commit | be364bb579f60ce87f43bb8421f81dc6312be23e (patch) | |
| tree | 6d4e581a70840d1bacc2f7bfeb5ed1edce526de4 | |
| parent | 105b825923ce03fc43eacb0575212fe52336ce34 (diff) | |
Résolution bug si char non présent dans cookie autologin
Optimisation de quelques éléments
Réorganisation légère des documents tiers
Ajout .htaccess pour interdire le listage des dossiers
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); |
