Premiere Partie

This commit is contained in:
“Louis
2022-04-07 10:06:09 +02:00
commit 53eabca315
72 changed files with 2754 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
<?php
// ****************************************'
// Le CASTEL-BTS SIO/ PROJET GSB PPE2 2020'
// Programme: c_connexion.php '
// Objet : authentification '
// Client : Bts SIO1 '
// Version : 22.03 '
// Date : 09/03/2022 à 19h07 '
// Auteur : pascal.blain@ac-dijon.fr '
//*****************************************'
if(!isset($_REQUEST['action'])){$_REQUEST['action'] = 'demandeConnexion';}
$action = $_REQUEST['action'];
switch($action){
case 'demandeConnexion':{
session_unset();
unset($choix);
$formulaire = "frmIdentification";
$champ = "login";
include("vues/v_entete.php");
include("vues/v_connexion.php");
break;
}
case 'valideConnexion':{
$login = $_REQUEST['login'];
$mdp = $_REQUEST['mdp']; //md5($_REQUEST['mdp']);
$utilisateur = $pdo->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;
}
}
?>

79
controleurs/c_param.php Normal file
View File

@@ -0,0 +1,79 @@
<?php
// ****************************************'
// Le CASTEL-BTS SIO/ PROJET démonstration'
// Programme: c_param.php '
// Objet : gestion des parametres '
// Client : Bts SIO1 '
// Version : 22.03 '
// Date : 09 mars 2022 à 19H51 '
// Auteur : pascal-blain@wanadoo.fr '
//*****************************************'
$action = $_REQUEST['action'];
if (!isset($_REQUEST['type'])) {$type = '*';} else {$type =$_REQUEST['type'];}
if (!isset($_REQUEST['valeur'])) {$valeur = '*';} else {$valeur =$_REQUEST['valeur'];}
if (!isset($_REQUEST['zPlancher'])) {$plancher = 0;} else {$plancher =intval($_REQUEST['zPlancher']);}
if (!isset($_REQUEST['zPlafond'])) {$plafond = 0;} else {$plafond =intval($_REQUEST['zPlafond']);}
if (!isset($_REQUEST['zType'])) {$zType = '*';} else {$zType =$_REQUEST['zType'];}
if (!isset($_REQUEST['zIndice'])) {$indice = '*';} else {$indice =$_REQUEST['zIndice'];}
switch($action) {
case 'voir':
{
include("vues/v_entete.php");
$lesParametres=$pdo->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;
}
}
?>

View File

@@ -0,0 +1,83 @@
<?php
// ****************************************'
// Le CASTEL-BTS SIO/ PROJET GSB PPE2 '
// Programme: c_praticien.php '
// Objet : gestion des praticiens '
// Client : Bts SIO1 '
// Version : 22.03 '
// Date : 09/03/2022 à 20h00 '
// Auteur : Pascal.Blain@ac-dijon.fr '
//*****************************************'
$action = $_REQUEST['action'];
switch($action) {
case 'voir':
{
$formulaire ="choixP";
$champ ="lstPraticiens";
include("vues/v_entete.php");
$region=$_SESSION['region'];
$lesLignes =$pdo->getLesPraticiens($region);
include("vues/v_choixPraticien.php");
$lesInfosPraticien = $pdo->getInfosPraticien($choix);
$lesVisitesPraticien = $pdo->getLesVisitesPraticien($choix);
include("vues/v_fichePraticien.php");
break;
}
//----------------------------------------- FORMULAIRE DE SAISIE
case 'ajouter':
case 'modifier':
case 'supprimer':
{
$formulaire ="frmA";
$champ ="ztNom";
include("vues/v_entete.php");
$choix= $_REQUEST['lstPraticiens'];
$lesInfosPraticien = $pdo->getInfosPraticien($choix);
$lesRegions = $pdo->getParametre("region");
$lesTypesPraticien = $pdo->getLesTypesPraticien();
include("vues/v_unPraticien.php");
break;
}
//----------------------------------------- VALIDATION
case 'validerAjouter':
case 'validerModifier':
case 'validerSupprimer':
{
(isset($_REQUEST['praticien']))?$valeur=$_REQUEST['praticien']:$valeur='erreur';
if ($_REQUEST['zOk']=="OK")
{
if ($action==="validerSupprimer")
{
$pdo->supprimePraticien($valeur);
header ('location: index.php?choixTraitement=praticien&action=voir');
break;
}
else
{
$nom = addslashes ($_REQUEST['ztNom']);
$prenom = addslashes ($_REQUEST['ztPrenom']);
$adresse = addslashes ($_REQUEST['ztAdresse']);
if (strlen($_REQUEST['ztCP'])>1) {$cp = $_REQUEST['ztCP'];} else {$cp = "Null";}
$ville = addslashes ($_REQUEST['ztVille']);
$coefNotoriete = addslashes ($_REQUEST['ztCoefNotoriete']);
$typePraticien = addslashes($_REQUEST['ldrTypePraticien']);
$region = addslashes($_REQUEST['ldrRegion']);
if ($action==="validerAjouter")
{ $valeur=$pdo->nouveauCodePraticien();
$pdo->ajoutPraticien($valeur,$nom,$prenom,$adresse,$cp,$ville,$coefNotoriete,$typePraticien,$region);}
else
{$pdo->majPraticien($valeur,$nom,$prenom,$adresse,$cp,$ville,$coefNotoriete,$typePraticien,$region);}
}
}
header ('location: index.php?choixTraitement=praticien&action=voir&lstPraticiens='.$valeur);
break;
}
//-----------------------------------------
default :
{
echo 'erreur d\'aiguillage !'.$action;
break;
}
}
?>

View File

@@ -0,0 +1,107 @@
<?php
// ****************************************'
// Le CASTEL-BTS SIO/ PROJET GSB PPE2 2020'
// Programme: c_utilisateur.php '
// Objet : gestion des utilisateurs '
// Client : Bts SIO1 '
// Version : 22.03 '
// Date : 09/03/2022 à 19h18 '
// Auteur : pascal.blain@ac-dijon.fr '
//*****************************************'
$action = $_REQUEST['action'];
switch($action) {
case 'voir':
{
$formulaire ="choixP";
$champ ="lstUtilisateur";
include("vues/v_entete.php");
if ($_SESSION['statut']==0)
{
$lesLignes =$pdo->getLesUtilisateurs();
include("vues/v_choixUtilisateur.php");
}
else
{
$choix=$_SESSION['idUtilisateur'];
}
$lesInfosUtilisateur= $pdo->getInfosUtilisateur("*",$choix);
$lesVisités = $pdo->getLesVisités($choix);
include("vues/v_ficheUtilisateur.php");
break;
}
//----------------------------------------- FORMULAIRE DE SAISIE
case 'ajouter':
case 'modifier':
case 'supprimer':
{
$formulaire ="frmA";
$champ ="ztNom";
include("vues/v_entete.php");
$choix= $_REQUEST['lstUtilisateurs'];
$lesInfosUtilisateur= $pdo->getInfosUtilisateur("*",$choix);
$lesStatuts = $pdo->getParametre("statUti");
$lesRegions = $pdo->getParametre("region");
$lesLabos = $pdo->getLesLabos();
include("vues/v_unUtilisateur.php");
break;
}
//----------------------------------------- VALIDATION
case 'validerAjouter':
case 'validerModifier':
case 'validerSupprimer':
{
(isset($_REQUEST['utilisateur']))?$valeur=$_REQUEST['utilisateur']:$valeur=$_SESSION['idUtilisateur'];
if (!strlen($valeur)==3){$valeur=$_SESSION['idUtilisateur'];}
if ($_REQUEST['zOk']=="OK")
{
if ($action==="validerSupprimer")
{$pdo->supprimeUtilisateur($valeur);$valeur=$_SESSION['idUtilisateur'];}
else
{
$nom = addslashes ($_REQUEST['ztNom']);
$prenom = addslashes ($_REQUEST['ztPrenom']);
$statut = $_REQUEST['ldrStatut'];
$login = $_REQUEST['ztLogin'];
$region = substr($_REQUEST['ldrRegion'],0, strpos($_REQUEST['ldrRegion'],"*"));
$secteur = substr($_REQUEST['ldrRegion'],strpos($_REQUEST['ldrRegion'],"*")+1,strlen($_REQUEST['ldrRegion'])-1);
//$mdp = md5($_REQUEST['ztMdp']);
$mdp = $_REQUEST['ztMdp'];
if($_REQUEST['brMdp']==0 AND $action==="validerModifier") {$mdp="*";}
$adresse = addslashes ($_REQUEST['ztAdresse']);
if (strlen($_REQUEST['ztCP'])>1) {$cp = $_REQUEST['ztCP'];} else {$cp = "Null";}
$ville = addslashes ($_REQUEST['ztVille']);
$labo = $_REQUEST['ldrLabo'];
if ($action==="validerAjouter")
{$valeur=$pdo->nouveauCodeUtilisateur($nom);
$pdo->ajoutUtilisateur($valeur,$nom,$prenom,$statut,$login,$mdp,$adresse,$cp,$ville,$region,$secteur,$labo);
$sujet = "nouveau compte";
$msg = "Bonjour ".$prenom." ".$nom.", \r\nLe Castel vient de créer un compte pour vous ...\r\n";
}
else
{$pdo->majUtilisateur($valeur,$nom,$prenom,$statut,$login,$mdp,$adresse,$cp,$ville,$region,$secteur,$labo);
$sujet = "nouveau mot de passe";
$msg = "Bonjour ".$prenom." ".$nom.", \r\nLe Castel vient de modifier votre mot de passe ...\r\n";
}
$entete = "From: Pascal Blain <pascal.blain@ac-dijon.fr>\r\n";
$entete .= "Mime-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=utf-8\r\n";
$entete .= "\r\n";
$msg .= "Statut : ".$statut."\r\n";
$msg .= "Identifiant : ".$login."\r\n";
$msg .= "Mot de passe : ".$_REQUEST['ztMdp']."\r\n";
//$pdo->envoyerMail($mail, $sujet, $msg, $entete);
}
}
header ('location: index.php?choixTraitement=utilisateur&action=voir&lstUtilisateurs='.$valeur);
break;
}
//-----------------------------------------
default :
{
echo 'erreur d\'aiguillage !'.$action;
break;
}
}
?>

13
controleurs/c_visite.php Normal file
View File

@@ -0,0 +1,13 @@
<?php
// ****************************************'
// Le CASTEL-BTS SIO/ PROJET GSB PPE2 '
// Programme: c_visite.php '
// Objet : gestion rapports de visites '
// Client : Bts SIO1 '
// Version : 22.03 '
// Date : 25/03/2022 à 10h57 '
// Auteur : Pascal.Blain@ac-dijon.fr '
//*****************************************'
?>

View File

@@ -0,0 +1,210 @@
<?php
/**
* Fonctions php pour l'application
* @version 22.03 version MVC modifiee le 09 mars 2022 par Blain Pascal
*/
/**
* Teste si un utilisateur est connecté (retourne vrai ou faux)
*/
function estConnecte(){
return isset($_SESSION['idUtilisateur']);
}
/**
* Enregistre dans des variables de session les informations d'un utilisateur
*/
function connecter($id, $nom, $prenom, $statut, $region){
$_SESSION['idUtilisateur'] = $id;
$_SESSION['nom'] = $nom;
$_SESSION['prenom'] = $prenom;
$_SESSION['statut'] = $statut;
$_SESSION['region'] = $region;
}
/**
* Detruit la session active
*/
function deconnecter(){
session_destroy();
}
/**
* envoyer un message electronique
*/
function envoyerMail($mail, $sujet, $msg, $entete)
{
if (mail($mail, $sujet, $msg, null)==false)
{ echo 'Suite à un probl&agrave;me technique, votre message n a pas &acute;t&acute; envoy&acute; a '.$mail.' sujet'.$sujet.'message '.$msg.' entete '.$entete;}
}
/**
* Transforme une date au format français jj/mm/aaaa vers le format anglais aaaa-mm-jj
* @param $madate au format jj/mm/aaaa
* @return la date au format anglais aaaa-mm-jj
*/
function dateFrancaisVersAnglais($maDate){
if(estDateValide($maDate)== true)
{
@list($jour,$mois,$annee) = explode('/',$maDate);
return date('Y-m-d',mktime(0,0,0,$mois,$jour,$annee));
}
else
{
return null;
}
}
/**
* Transforme une date au format format anglais aaaa-mm-jj vers le format français jj/mm/aaaa
* @param $madate au format aaaa-mm-jj
* @return la date au format format français jj/mm/aaaa
*/
function dateAnglaisVersFrancais($maDate)
{
@list($annee,$mois,$jour)=explode('-',$maDate);
$date="$jour"."/".$mois."/".$annee;
return $date;
}
/**
* retourne le mois au format aaaamm selon le jour dans le mois
* @param $date au format jj/mm/aaaa
* @return le mois au format aaaamm
*/
function getMois($date){
@list($jour,$mois,$annee) = explode('/',$date);
if(strlen($mois) == 1){
$mois = "0".$mois;
}
return $annee.$mois;
}
/**
* retourne la date en texte
*/
function dateTexte($laDate){
$NomDuJour = array ("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$NomDuMois = array ("janvier", "f&eacute;vrier", "mars", "avril", "mai", "juin", "juillet", "ao&ucirc;t", "septembre", "octobre", "novembre", "d&eacute;cembre");
$lejour = date("j",$laDate);
$lemois = $NomDuMois[date("n",$laDate)-1];
$dateTexte=$NomDuJour[date("w",$laDate)]." ";
if($lejour==01){$dateTexte.=' 1er '; }
else {$dateTexte.=$lejour.' ';}
$dateTexte.=$lemois.' '.date('Y', $laDate);
return $dateTexte;
}
/**
* retourne le mois en texte
*/
function moisTexte($mois){
$tabMois = array( '01' => "Janvier",
'02' => "F&eacute;vrier",
'03' => "Mars",
'04' => "Avril",
'05' => "Mai",
'06' => "Juin",
'07' => "Juillet",
'08' => "Ao&ucirc;t",
'09' => "Septembre",
'10' => "Octobre",
'11' => "Novembre",
'12' => "D&eacute;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 &agrave; 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 . "<br />";
echo "Requete : " . $req . "<br />";
echo "Code erreur : " . $info[0] . ", Message : " . $info[2];
die();
}
?>