From 89a3175a1b2ae0547d4370f3c9f3b66535d8a114 Mon Sep 17 00:00:00 2001 From: Adrien Clinet Date: Thu, 17 Mar 2022 15:33:52 +0100 Subject: [PATCH] refonte --- README.md | 2 - controleurs/c_connexion.php | 57 ++ controleurs/c_param.php | 79 ++ controleurs/c_utilisateur.php | 50 ++ controleurs/fonctionsProjet.inc | 210 +++++ gsb2020.jpg | Bin 0 -> 190229 bytes gsb2020.pdf | Bin 0 -> 195825 bytes gsb2020.sql | 1412 +++++++++++++++++++++++++++++++ images/Thumbs.db | Bin 0 -> 171520 bytes images/add.png | Bin 0 -> 50584 bytes images/ajout.gif | Bin 0 -> 14200 bytes images/ajouter.jpg | Bin 0 -> 15623 bytes images/ajoutmembre.png | Bin 0 -> 1845 bytes images/alerte moyen.jpg | Bin 0 -> 13939 bytes images/alerte.jpg | Bin 0 -> 13467 bytes images/alerte.png | Bin 0 -> 50505 bytes images/alerte_petit.jpg | Bin 0 -> 13652 bytes images/annuler.jpg | Bin 0 -> 16385 bytes images/bt-print.gif | Bin 0 -> 180 bytes images/bt-send.gif | Bin 0 -> 135 bytes images/cocheB.gif | Bin 0 -> 1206 bytes images/cocheR.gif | Bin 0 -> 14198 bytes images/cocheV.gif | Bin 0 -> 14187 bytes images/cp.gif | Bin 0 -> 90 bytes images/danger.jpg | Bin 0 -> 8767 bytes images/deconnexion.png | Bin 0 -> 58826 bytes images/editer.jpg | Bin 0 -> 16347 bytes images/favicon.ico | Bin 0 -> 14177 bytes images/favicon.jpg | Bin 0 -> 13616 bytes images/favicon.png | Bin 0 -> 2020 bytes images/fermer.png | Bin 0 -> 2718 bytes images/fleche_oblique.png | Bin 0 -> 208 bytes images/goDernier.gif | Bin 0 -> 271 bytes images/goPrecedent.gif | Bin 0 -> 597 bytes images/goPremier.gif | Bin 0 -> 405 bytes images/goSuivant.gif | Bin 0 -> 601 bytes images/group.png | Bin 0 -> 2386 bytes images/imprimer.gif | Bin 0 -> 4701 bytes images/infobulle.png | Bin 0 -> 509 bytes images/logo.png | Bin 0 -> 109679 bytes images/logoGSB.jpg | Bin 0 -> 6780 bytes images/modif.gif | Bin 0 -> 1251 bytes images/picto_disconnect.png | Bin 0 -> 499 bytes images/plus.png | Bin 0 -> 49209 bytes images/plusB.png | Bin 0 -> 49436 bytes images/plusBleu.png | Bin 0 -> 49619 bytes images/plusGrand.png | Bin 0 -> 1477 bytes images/recherche.jpg | Bin 0 -> 879 bytes images/recherche2.jpg | Bin 0 -> 2831 bytes images/recherche3.jpg | Bin 0 -> 1751 bytes images/rechercher.jpg | Bin 0 -> 5193 bytes images/supprimer.gif | Bin 0 -> 14288 bytes images/supprimer.jpg | Bin 0 -> 15489 bytes images/users.png | Bin 0 -> 2737 bytes images/validation.jpg | Bin 0 -> 15674 bytes images/valider.jpg | Bin 0 -> 16158 bytes index.php | 35 + modele/classPDO.php | 152 ++++ styles/styles.css | 501 +++++++++++ vues/proceduresJava.js | 248 ++++++ vues/v_choixParam.php | 44 + vues/v_connexion.php | 19 + vues/v_entete.php | 47 + vues/v_erreurs.php | 10 + vues/v_ficheParametre.php | 100 +++ vues/v_ficheProfil.php | 43 + vues/v_pied.php | 5 + vues/v_unParam.php | 94 ++ 68 files changed, 3106 insertions(+), 2 deletions(-) delete mode 100644 README.md create mode 100644 controleurs/c_connexion.php create mode 100644 controleurs/c_param.php create mode 100644 controleurs/c_utilisateur.php create mode 100644 controleurs/fonctionsProjet.inc create mode 100644 gsb2020.jpg create mode 100644 gsb2020.pdf create mode 100644 gsb2020.sql create mode 100644 images/Thumbs.db create mode 100644 images/add.png create mode 100644 images/ajout.gif create mode 100644 images/ajouter.jpg create mode 100644 images/ajoutmembre.png create mode 100644 images/alerte moyen.jpg create mode 100644 images/alerte.jpg create mode 100644 images/alerte.png create mode 100644 images/alerte_petit.jpg create mode 100644 images/annuler.jpg create mode 100644 images/bt-print.gif create mode 100644 images/bt-send.gif create mode 100644 images/cocheB.gif create mode 100644 images/cocheR.gif create mode 100644 images/cocheV.gif create mode 100644 images/cp.gif create mode 100644 images/danger.jpg create mode 100644 images/deconnexion.png create mode 100644 images/editer.jpg create mode 100644 images/favicon.ico create mode 100644 images/favicon.jpg create mode 100644 images/favicon.png create mode 100644 images/fermer.png create mode 100644 images/fleche_oblique.png create mode 100644 images/goDernier.gif create mode 100644 images/goPrecedent.gif create mode 100644 images/goPremier.gif create mode 100644 images/goSuivant.gif create mode 100644 images/group.png create mode 100644 images/imprimer.gif create mode 100644 images/infobulle.png create mode 100644 images/logo.png create mode 100644 images/logoGSB.jpg create mode 100644 images/modif.gif create mode 100644 images/picto_disconnect.png create mode 100644 images/plus.png create mode 100644 images/plusB.png create mode 100644 images/plusBleu.png create mode 100644 images/plusGrand.png create mode 100644 images/recherche.jpg create mode 100644 images/recherche2.jpg create mode 100644 images/recherche3.jpg create mode 100644 images/rechercher.jpg create mode 100644 images/supprimer.gif create mode 100644 images/supprimer.jpg create mode 100644 images/users.png create mode 100644 images/validation.jpg create mode 100644 images/valider.jpg create mode 100644 index.php create mode 100644 modele/classPDO.php create mode 100644 styles/styles.css create mode 100644 vues/proceduresJava.js create mode 100644 vues/v_choixParam.php create mode 100644 vues/v_connexion.php create mode 100644 vues/v_entete.php create mode 100644 vues/v_erreurs.php create mode 100644 vues/v_ficheParametre.php create mode 100644 vues/v_ficheProfil.php create mode 100644 vues/v_pied.php create mode 100644 vues/v_unParam.php diff --git a/README.md b/README.md deleted file mode 100644 index 003ac20..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# AP23 - diff --git a/controleurs/c_connexion.php b/controleurs/c_connexion.php new file mode 100644 index 0000000..b0ceedb --- /dev/null +++ b/controleurs/c_connexion.php @@ -0,0 +1,57 @@ +getInfosUtilisateur($login,$mdp); + + if(!is_array( $utilisateur)){ + $formulaire ="frmIdentification"; + $champ ="login"; + include("vues/v_entete.php"); + ajouterErreur("Login ou mot de passe incorrect"); + include("vues/v_erreurs.php"); + include("vues/v_connexion.php"); + } + else{ + $id = $utilisateur['uId']; + $nom = $utilisateur['uNom']; + $prenom = $utilisateur['uPrenom']; + $statut = $utilisateur['uStatut']; + ($statut==0)?$region=0:$region=$utilisateur['uRegion']; + connecter($id,$nom,$prenom,$statut,$region); + header ('location: index.php?choixTraitement=utilisateur&action=voir'); + } + break; + } + default :{ + $formulaire ="frmIdentification"; + $champ ="login"; + include("vues/v_entete.php"); + include("vues/v_connexion.php"); + break; + } +} +?> \ No newline at end of file diff --git a/controleurs/c_param.php b/controleurs/c_param.php new file mode 100644 index 0000000..75a2465 --- /dev/null +++ b/controleurs/c_param.php @@ -0,0 +1,79 @@ +getLesParametres(); + include("vues/v_choixParam.php"); + $enteteParametre=$lesParametres[$noP-1]; + $lesInfosParametre = $pdo->getParametre($choix); + include("vues/v_ficheParametre.php"); + $stat="2"; + break; + } +//-----------------------------------------liste détaillée pour un parametre +case 'liste': + { + include("vues/v_entete.php"); + $lesParametres=$pdo->getLesParametres(); + include("vues/v_choixParam.php"); + $titre2=$lesStatistiques[0]['libelle']; + include("vues/v_listeStat.php"); + break; + } +//----------------------------------------- AJOUT/MODIFICATION/SUPPRESSION +case 'ajouter': +case 'modifier': +case 'supprimer': + { + include("vues/v_entete.php"); + $infosParam = $pdo->getInfosParam($type, $valeur); + include("vues/v_unParam.php"); + break; + } +//----------------------------------------- VALIDATION AJOUT +case 'validerAjouter': + {// enregistrement de la ligne et retour + if ($_REQUEST['zOk']=="OK") {$pdo->ajoutParametre($type, $valeur, addslashes ($_REQUEST['zLibelle']), $_REQUEST['zTerritoire'], $_REQUEST['zDep'] , $plancher, $plafond);} + header ('location: index.php?choixTraitement=param&action=voir&lstParam='.$type); + } +//----------------------------------------- VALIDATION MODIFICATION +case 'validerModifier': + { + if ($_REQUEST['zOk']=="OK") {$pdo->majParametre($type, $valeur, addslashes ($_REQUEST['zLibelle']), $_REQUEST['zTerritoire'], $_REQUEST['zDep'], $plancher, $plafond);} + header ('location: index.php?choixTraitement=param&action=voir&lstParam='.$type); + break; + } +//----------------------------------------- VALIDATION SUPPRESSION +case 'validerSupprimer': + { + if ($_REQUEST['zOk']=="OK") {$pdo->supprimeParametre($type, $valeur);} + header ('location: index.php?choixTraitement=param&action=voir&lstParam='.$type); + break; + } + +default : + { + echo 'erreur d\'aiguillage !'.$action; + break; + } +} +?> \ No newline at end of file diff --git a/controleurs/c_utilisateur.php b/controleurs/c_utilisateur.php new file mode 100644 index 0000000..6ba85c4 --- /dev/null +++ b/controleurs/c_utilisateur.php @@ -0,0 +1,50 @@ +getInfosUtilisateur("*",$_SESSION['idUtilisateur']); + include("vues/v_ficheProfil.php"); + break; + } + +//----------------------------------------- /MODIFICATION/ + +case 'modifier': + + { + include("vues/v_entete.php"); + $infosParam = $pdo->getInfosParam($type, $valeur); + include("vues/v_unParam.php"); + break; + } + +//----------------------------------------- VALIDATION MODIFICATION +case 'validerModifier': + { + if ($_REQUEST['zOk']=="OK") {$pdo->majParametre($type, $valeur, addslashes ($_REQUEST['zLibelle']), $_REQUEST['zTerritoire'], $_REQUEST['zDep'], $plancher, $plafond);} + header ('location: index.php?choixTraitement=param&action=voir&lstParam='.$type); + break; + } + + +default : + { + echo 'erreur d\'aiguillage !'.$action; + break; + } +} +?> \ No newline at end of file diff --git a/controleurs/fonctionsProjet.inc b/controleurs/fonctionsProjet.inc new file mode 100644 index 0000000..7646314 --- /dev/null +++ b/controleurs/fonctionsProjet.inc @@ -0,0 +1,210 @@ + "Janvier", + '02' => "Février", + '03' => "Mars", + '04' => "Avril", + '05' => "Mai", + '06' => "Juin", + '07' => "Juillet", + '08' => "Août", + '09' => "Septembre", + '10' => "Octobre", + '11' => "Novembre", + '12' => "Décembre"); + return $tabMois[$mois]; +} + +/* gestion des erreurs*/ +/** + * Indique si une valeur est un entier positif ou nul + * @param $valeur + * @return vrai ou faux +*/ +function estEntierPositif($valeur) +{ + return preg_match("/[^0-9]/", $valeur) == 0; +} + +/** + * Indique si un tableau de valeurs est constitué d'entiers positifs ou nuls + * @param $tabEntiers : le tableau + * @return vrai ou faux +*/ +function estTableauEntiers($tabEntiers) +{ + $ok = true; + foreach($tabEntiers as $unEntier) + { + if(!estEntierPositif($unEntier)){$ok=false;} + } + return $ok; +} +/** + * Vérifie si une date est inférieure d'un an à la date actuelle + * @param $dateTestee + * @return vrai ou faux +*/ +function estDateDepassee($dateTestee) +{ + $dateActuelle=date("d/m/Y"); + @list($jour,$mois,$annee) = explode('/',$dateActuelle); + $annee--; + $AnPasse = $annee.$mois.$jour; + @list($jourTeste,$moisTeste,$anneeTeste) = explode('/',$dateTestee); + return ($anneeTeste.$moisTeste.$jourTeste < $AnPasse); +} +/** + * Vérifie la validité du format d'une date française jj/mm/aaaa + * @param $date + * @return vrai ou faux +*/ +function estDateValide($date){ + $tabDate = explode('/',$date); + $dateOK = true; + if (count($tabDate) != 3) { + $dateOK = false; + } + else { + if (!estTableauEntiers($tabDate)) { + $dateOK = false; + } + else { + if (!checkdate($tabDate[1], $tabDate[0], $tabDate[2])) { + $dateOK = false; + } + } + } + return $dateOK; +} + +/** + * Ajoute le libelle d'une erreur au tableau des erreurs + * @param $msg : le libellé de l'erreur + */ +function ajouterErreur($msg){ + if (! isset($_REQUEST['erreurs'])){ + $_REQUEST['erreurs']=array(); + } + $_REQUEST['erreurs'][]=$msg; +} + +/** + * Retoune le nombre de lignes du tableau des erreurs + * @return le nombre d'erreurs + */ +function nbErreurs(){ + if (!isset($_REQUEST['erreurs'])){ + return 0; + } + else{ + return count($_REQUEST['erreurs']); + } +} + +/** afficherErreurSQL : + Affichage de messages lors l'accès à la bdd avec une requete SQL + @param $message : message a afficher + @param $req : requete executee + @param $info : erreur constatee +*/ +function afficherErreurSQL($message, $req, $info) { + echo $message . "
"; + echo "Requete : " . $req . "
"; + echo "Code erreur : " . $info[0] . ", Message : " . $info[2]; + die(); +} +?> \ No newline at end of file diff --git a/gsb2020.jpg b/gsb2020.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d60dab78afb947cae2f93569b0270170098604cb GIT binary patch literal 190229 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'; + } +?> +

Gestion des Comptes-Rendus de visites

+ + + +
+ \ No newline at end of file diff --git a/vues/v_erreurs.php b/vues/v_erreurs.php new file mode 100644 index 0000000..27418d8 --- /dev/null +++ b/vues/v_erreurs.php @@ -0,0 +1,10 @@ +
+
    + $erreur"; + } + ?> +
+
\ No newline at end of file diff --git a/vues/v_ficheParametre.php b/vues/v_ficheParametre.php new file mode 100644 index 0000000..9db69df --- /dev/null +++ b/vues/v_ficheParametre.php @@ -0,0 +1,100 @@ + + + '); +/*================================================================================================== */ +$nbP=count($lesInfosParametre); +echo(" +
+
Parametre + + + +
CodeDescriptionBooléenChoix multiples
 ".$enteteParametre['tlId']."".$enteteParametre['tlLibelle']."".$enteteParametre['tlBooleen']."".$enteteParametre['tlChoixMultiple']."
+

+ + + + "); + if ($nbP>=10) + { + echo(" + "); + } + echo(" + +
+
Valeurs + "); + $numPa=1; + foreach ($lesInfosParametre as $uneLigne) + { + if ($numPa<10) + {$numPa=$numPa+1; + $type = $choix; + $indice = $uneLigne['pIndice']; + + echo(" + + + "); + } + } + while ($numPa<10) + { + echo(""); + $numPa=$numPa+1; + } + echo(" +
".$uneLigne['pIndice']." ".$uneLigne['pLibelle'].""); + + echo(""); + echo (" + "); + echo (" +
      
+
+
(suite) + "); + $numP=1; + foreach ($lesInfosParametre as $uneLigne) + { + if ($numP>=10) + { + $type = $choix; + $indice = $uneLigne['pIndice']; + + echo(" + + + "); + } + $numP=$numP+1; + } + if ($numP<10) {$numP=10;} + while ($numP<19) + { + echo(""); + $numP=$numP+1; + } + echo(" +
".$uneLigne['pIndice']." ".$uneLigne['pLibelle'].""); + + echo(""); + echo (" + "); + echo (" +
      
+
+
+
Observations + + + + +
...
+
+
+
"); +?> \ No newline at end of file diff --git a/vues/v_ficheProfil.php b/vues/v_ficheProfil.php new file mode 100644 index 0000000..8ace9fd --- /dev/null +++ b/vues/v_ficheProfil.php @@ -0,0 +1,43 @@ + +
Coordonnées de l'utilisateur + "); + + echo(" + + + + + + + + + + + + + + + + + + +
Nom".$lesInfosProfil['uNom']."
Prenom".$lesInfosProfil['uPrenom']."
Adresse".$lesInfosProfil['uAdresse']."
Code Postal".$lesInfosProfil['uCP']."
Ville".$lesInfosProfil['uVille']."
Statut".$lesInfosProfil['wStatut']."
Nom de compte".$lesInfosProfil['uLogin']."
Region".$lesInfosProfil['wRegion']."
Secteur".$lesInfosProfil['wSecteur']."
+ +
+ +
Laboratoire + + + + + +
".$lesInfosProfil['lNom']."
+
+ + "); \ No newline at end of file diff --git a/vues/v_pied.php b/vues/v_pied.php new file mode 100644 index 0000000..42cc26a --- /dev/null +++ b/vues/v_pied.php @@ -0,0 +1,5 @@ + + +

+ + \ No newline at end of file diff --git a/vues/v_unParam.php b/vues/v_unParam.php new file mode 100644 index 0000000..955528e --- /dev/null +++ b/vues/v_unParam.php @@ -0,0 +1,94 @@ + + +SUPPRESSION DE LA VALEUR D\'UN PARAMETRE'; + echo "
";} + if ($action==="modifier") + {echo '

MODIFICATION DE LA VALEUR D\'UN PARAMETRE

'; + echo "";} + if ($action==="ajouter") + {echo '

AJOUT DE LA VALEUR D\'UN PARAMETRE

'; + echo "";} +?> + +
+ + + + + + + + +
+
+ +
Indice "); + + if ($_REQUEST['action']==="ajouter") {echo "";} + else {echo $infosParam['pIndice'];} +echo ("
Valeur "); + if ($_REQUEST['action']==="ajouter") {echo "";} + if ($_REQUEST['action']==="modifier") {echo "";} + if ($_REQUEST['action']==="supprimer") {echo $infosParam['pLibelle'];} +echo ("
Territoire "); + if ($_REQUEST['action']==="ajouter") {echo "";} + if ($_REQUEST['action']==="modifier") {echo "";} + if ($_REQUEST['action']==="supprimer") {echo $infosParam['territoire'];} +echo ("
Département "); + if ($_REQUEST['action']==="ajouter") {echo "";} + if ($_REQUEST['action']==="modifier") {echo "";} + if ($_REQUEST['action']==="supprimer") {echo $infosParam['dep'];} +echo ("
"); +} +else +{ +echo (" + + "); + if($infosParam['pType'] === "motifSo") + { + echo ("");} + else + {echo (" + oui + Non");} +echo (" + "); + } + else + { echo (" + + ");} +echo (" +
Indice "); + if ($action==="ajouter") {echo "";} + else {echo $infosParam['pIndice'];} +echo ("
Valeur "); + if ($action==="ajouter") {echo "";$actif=null;} + if ($action==="modifier") {echo "";$actif=null;} + if ($action==="supprimer") {echo $infosParam['pLibelle'];$actif="disabled='disabled'";} +echo ("
Réorientation "); + if($infosParam['pPlancher'] == 1) + {echo (" + oui + Non
Plancher
Plafond
+ "); +} ?> + + + + +
+ +

+ + + +

+
+ \ No newline at end of file