Outils pour utilisateurs

Outils du site


fonctions_generiques_fonctions.inc.php
fonction.inc.php
<?php
 
// suppression de tous les échappements automatiques
// dans les tableaux
function Normaliser ($tableau) {
	foreach ($tableau as $clef => $valeur) {
		if (!is_array($valeur))
			$tableau [$clef] = stripslashes($valeur);
			else
			// appel récursif
			$tableau [$clef] = Normaliser($valeur);
		}
return $tableau;
}
### --------------------------------------------------------------------###
function Normalisation() {
	// si magic_quotes est "ON",
	if (get_magic_quotes_gpc()) {
		$_POST = Normaliser($_POST);    // normaliser les $_POST
		$_GET = Normaliser($_GET);        // normaliser les $_GET
		$_REQUEST = Normaliser($_REQUEST);    // normaliser les $_REQUEST
		$_COOKIE = Normaliser($_COOKIE);    // normaliser les $_COOKIE
		}
}
 
### --------------------------------------------------------------------###
function afficher ($tableau, $die=false) {
	if (count($tableau) == 0)
		echo "Tableau vide";
		else {
			echo "<pre>";
			print_r ($tableau);
			echo "</pre>";
			echo "<hr />";
		}
if ($die) die(); 
}
### --------------------------------------------------------------------###
function afficher_silent ($tableau, $die=false) {
	echo "<!-- ";
	afficher($tableau, $die);
	echo "-->";
	}
 
// --------------------------------------------------------------------
// renvoi du mot de passe
function renvoiMdp ($acronyme) {
	if (isset($acronyme)) {
    $connexion = connexion (NOM, MDP, BASE, SERVEUR);
    $sql = "SELECT nom, prenom, mail FROM ".PREFIXETABLES."profs ";
    $sql .= "WHERE acronyme='$acronyme'";
    $resultat = executeRequete($sql, $connexion);
    // cet acronyme existe. On a peut-etre une adresse e-mail
    $ligne = ligneSuivante($resultat);
    $mail = $ligne['mail'];
 
    if ($mail != "") {
        // génération d'un nouveau mot de passe
        $nouveauMotDePasse = generatePassword (8, 3);
        // encodage md5
        $md5Mdp = md5($nouveauMotDePasse);
        $sql = "UPDATE ".PREFIXETABLES."profs SET mdp = '$md5Mdp' ";
        $sql .= "WHERE acronyme='$acronyme'";
        $resultat = executeRequete($sql, $connexion);
        mail($mail, PWD." ".TITREGENERAL, sprintf(NEWPWD, $nouveauMotDePasse),
             "From: ".ROBOT."@".DOMAIN);
        mail(MAILADMIN, PWD, "$acronyme : $mail");
        echo sprintf (NEWPWDSEND, $mail);
        Deconnexion($connexion);
        }
        else echo NOMAIL.ADMINISTRATOR;
    }
    else echo USERNAME;
	}
 
### --------------------------------------------------------------------###
// lis toutes les valeurs constantes pour l'ensemble des applis dans la BD
function lireConstantes ($appli) {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT * FROM config WHERE appli = '$appli'";
	$resultat = ExecuteRequete($sql, $connexion);
	$data = array();
	while ($ligne = ligneSuivante($resultat)) {
		$key = $ligne['parametre'];
		$data[$key] = $ligne['valeur'];
		}
	Deconnexion($connexion);
	return $data;
	}
 
### --------------------------------------------------------------------###
function Identification () {
	$data['ip'] = $_SERVER['REMOTE_ADDR'];
	$data['hostname'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);
	$data['date'] = date("d/m/Y");
	$data['heure'] = date("H:i");
	if (isset($_SESSION))
		foreach ($_SESSION as $key => $value)
			$data[$key] = $value;
	return $data;
}
 
// ----------------------------------------------------------------------------
// Identification réseau: adresse IP et Host
function identiteReseau () {
	$data['ip'] = $_SERVER['REMOTE_ADDR'];
	$data['hostname'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);
	return $data;
}
### --------------------------------------------------------------------###

function listeFlashInfos ($module) {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT * FROM ".PREFIXETABLES."flashInfos ";
	$sql .= "WHERE application = '$module' ";
	$sql .= "ORDER BY date DESC";
	$resultat = executeRequete($sql, $connexion);
 
	$flashInfos = array();
	while ($ligne = ligneSuivante($resultat)) {
		$flashInfos[] = $ligne;
		}
	Deconnexion ($connexion);
return $flashInfos;
}
 
### --------------------------------------------------------------------###
function repertoireActuel () {
	$dir = array_reverse(explode("/",getcwd()));
	return $dir[0];
}
 
### --------------------------------------------------------------------###
function accesApplication ($nomApplication) {
	// vérifier que l'utilisateur est identifié pour l'application active
	return 	(
			isset($_SESSION['identite']['acronyme']) &&
			isset($_SESSION['identite']['mdp']) &&
			$_SESSION['applicationName'] == $nomApplication
			);
}
### --------------------------------------------------------------------###
// Vérification de l'activation du module pour l'utilisateur actif
function accesModule() {
	$repertoireActuel = repertoireActuel();
	$applisAutorisees = $_SESSION['applications'];
	$applis = array();
	foreach ($applisAutorisees as $key=>$value)
		array_push($applis, $key);
	if (!(in_array($repertoireActuel, $applis)))
		header("Location: ".BASEDIR."index.php");
		else return true;
}
 
 
function nomPrenomClasse ($codeInfo) {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT codeInfo, nom, prenom, classe, groupe FROM ".PREFIXETABLES."eleves ";
	$sql .= "WHERE codeInfo = '$codeInfo';";
	$resultat = executeRequete($sql, $connexion);
	$ligne = ligneSuivante($resultat);
	Deconnexion($connexion);
	return $ligne;
}
 
// --------------------------------------------------------------------
// retourne l'ensemble des informations sur l'élève dont on fournit le matricule
function detailsEleve ($codeInfo) {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT * ";
	$sql .= "FROM ".PREFIXETABLES."eleves ";
	$sql .= "WHERE codeInfo = '$codeInfo'";
	$resultat = ExecuteRequete($sql, $connexion);
	$eleve = ligneSuivante($resultat);
	Deconnexion($connexion);
	return $eleve;
	}
### --------------------------------------------------------------------###

function nomPrenomClasseTQ ($codeInfo) {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT codeInfo, nom, prenom, classe FROM ".PREFIXETABLES."eleves ";
	$sql .= "WHERE codeInfo = '$codeInfo';";
 
	$resultat = executeRequete($sql, $connexion);
	$ligne = ligneSuivante($resultat);
	Deconnexion($connexion);
	return $ligne;
}
### --------------------------------------------------------------------###
function listeElevesGroupe ($groupe) {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT codeInfo,nom,prenom,concat(nom,' ',prenom) as nomPrenom, classe ";
	$sql .= "FROM ".PREFIXETABLES."eleves WHERE groupe = '$groupe' ";
	$sql .= "ORDER BY groupe, REPLACE(REPLACE(REPLACE (nom, ' ', ''),'''',''),'-',''), prenom;";
	$resultat = executeRequete($sql, $connexion);
 
	$listeEleves = array();
	while ($ligne = ligneSuivante($resultat)) {
		$nomPrenom = $ligne['nomPrenom'];
		$codeInfo = $ligne['codeInfo'];
		$classe = $ligne['classe'];
		$listeEleves[$codeInfo] = array('classe'=>$classe,'nomPrenom'=>$nomPrenom);
		}
	Deconnexion ($connexion);
	return $listeEleves;
}
// ----------------------------------------------------------------------------
// retourne la liste de tous les élèves qui suivent un cours donné
function listeElevesCours($cours) {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT ".PREFIXETABLES."elevesCours.codeInfo, CONCAT(nom, ' ',prenom) as nomPrenom, classe ";
	$sql .= "FROM ".PREFIXETABLES."elevesCours ";
	$sql .= "JOIN ".PREFIXETABLES."eleves ON (".PREFIXETABLES."eleves.codeInfo = ".PREFIXETABLES."elevesCours.codeInfo) ";
	$sql .= "WHERE coursGrp = '$cours' ";
	$sql .= "ORDER BY classe, REPLACE(REPLACE (nom, ' ', ''),'''',''), prenom";
 
	$resultat = ExecuteRequete($sql, $connexion);
	$listeEleves = array();
	while ($ligne = ligneSuivante($resultat)) {
		$nomPrenom = $ligne['nomPrenom'];
		$codeInfo = $ligne['codeInfo'];
		$classe = $ligne['classe'];
		$listeEleves[$codeInfo] = array('classe'=>$classe,'nomPrenom'=>$nomPrenom);
		}
	Deconnexion ($connexion);
	return $listeEleves;
}
 
### --------------------------------------------------------------------###
// retourne toutes les classes disponibles dans la base de données
function listeClasses () {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT DISTINCT classe FROM ".PREFIXETABLES."eleves ORDER BY classe";
	$resultat = executeRequete ($sql, $connexion);
	$liste = array();
	while ($ligne = LigneSuivante($resultat)) {
		$classe = $ligne['classe'];
		$liste[$classe] = $classe;
		}
	return $liste;
}
### --------------------------------------------------------------------###
function listeGroupes() {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT DISTINCT groupe FROM ".PREFIXETABLES."eleves ORDER BY groupe";
	$resultat = executeRequete ($sql, $connexion);
	$liste = array();
	while ($ligne = LigneSuivante($resultat)){
		$groupe = $ligne['groupe'];
		$liste[$groupe] = $ligne['groupe'];
		}
	Deconnexion($connexion);
	return $liste;
}
 
// --------------------------------------------------------------------
// liste de tous les niveaux d'études existant
function listeNiveaux () {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$liste = array();
	$sql = "SELECT DISTINCT SUBSTR(groupe,1,1) as niveau ";
	$sql .= "FROM ".PREFIXETABLES."eleves ";
	$sql .= "ORDER BY niveau";
	$resultat = ExecuteRequete($sql, $connexion);
	while ($ligne = ligneSuivante($resultat)) {
		$niveau = $ligne['niveau'];
		$liste[$niveau] = $niveau;
		}
	Deconnexion($connexion);
	return $liste;
	}
 
function listeTousProfs () {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT acronyme, CONCAT(nom ,' ', prenom) AS nom ";
	$sql .= "FROM ".PREFIXETABLES."profs ";
	$sql .= "ORDER BY REPLACE(REPLACE(REPLACE (nom, ' ', ''),'''',''),'-','');";
	$resultat = executeRequete ($sql, $connexion);
	$listeProfs = array();
	while ($ligne = LigneSuivante($resultat)) {
		$acronyme = strtoupper($ligne['acronyme']);
		$listeProfs[$acronyme] = $ligne['nom'];
		}
	Deconnexion($connexion);
	return $listeProfs;
	}
// ----------------------------------------------------------------------------
// Retourne le nombre d'élèves
function nbEleves() {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT DISTINCT codeInfo FROM ".PREFIXETABLES."eleves";
	$resultat = ExecuteRequete($sql, $connexion);
	$nbEleves = nbResultats($resultat);
	Deconnexion($connexion);
	return $nbEleves;
	}
 
// ----------------------------------------------------------------------------
// Retourne le nombre de classes 
function nbClasses() {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT DISTINCT classe FROM ".PREFIXETABLES."eleves";
	$resultat = ExecuteRequete($sql, $connexion);
	$nbClasses = nbResultats($resultat);
	Deconnexion($connexion);
	return $nbClasses;
	}
 
### --------------------------------------------------------------------###
// Lire tous les Flash Infos du module
### --------------------------------------------------------------------###
function lireFlashInfos ($module) {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT * FROM ".PREFIXETABLES."flashInfos WHERE application ='$module' ORDER BY date DESC, heure DESC";
	$resultat = executeRequete ($sql, $connexion);
	$flashInfos=array();
	while ($ligne = LigneSuivante($resultat))
		$flashInfos[]=$ligne;
	Deconnexion ($connexion);
	return $flashInfos;
}
 
### --------------------------------------------------------------------###
function dateNaiss ($codeInfo) {
	// recherche la date de naissance de l'élève dont le matricule est $codeInfo
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT dateNaiss FROM ".PREFIXETABLES."eleves WHERE codeInfo = '$codeInfo';";
	$resultat = executeRequete ($sql, $connexion);
	$ligne = ligneSuivante($resultat);
	$dateNaiss = $ligne['dateNaiss'];
	Deconnexion ($connexion);
	$date = explode ("-", $dateNaiss);
	// bug de l'an 2000
	if ($date[0] < 1900)
		if ($date[0] < 20)
			$date[0] += 2000;
			else $date[0] += 1900;
	return $date;
}
 
// ----------------------------------------------------------------------------
// Calcul de l'âge
function age($dateNaiss) {
    list($ajd['Y'], $ajd['m'], $ajd['d']) = explode("-",date("Y-m-d"));
    list($nais['Y'], $nais['m'], $nais['d']) = explode ('-', $dateNaiss); 
 
    // calcul du nombre d'années d'âge    
    $age['Y'] = $ajd['Y']-$nais['Y'];
 
    // calcul du nombre de mois d'âge en plus des années
    // L'anniversaire est-il passé, cette année?
    if ($ajd['m'] >= $nais['m']) {
        // depuis combien de mois?
        $age['m'] = $ajd['m']-$nais['m'];
    } else {
        // on a compté une année de trop: l'anniversaire n'est pas passé
        $age['Y']--;
        // combien de mois avant l'anniversaire?
        $age['m'] = 12-$nais['m']+$ajd['m'];
        }
 
    // calcul du nombre de jours après la date-jour de l'anniversaire
    if ($ajd['d'] >= $nais['d']) {
        // la date-jour est passée, le calcul est simple
        $age['d'] = $ajd['d']-$nais['d'];
        } else {
            $age['m']--;
            if ($age['m'] < 0) {
                $age['m']= $age['m']+12;
                $age['Y']--;
            }
            $nbJoursMois = intval(date("t",$nais['m']));
            $age['d'] = $nbJoursMois - $nais['d'] + $ajd['d'];
            }
    return $age;
}
 
 
### --------------------------------------------------------------------###
function generatePassword($length=9, $robustesse=0) {
    $voyelles = "aeuy";
    $consonnes = "bdghjmnpqrstvz";
    if ($robustesse & 1) {
        $consonnes .= "BDGHJLMNPQRSTVWXZ";
    }
    if ($robustesse & 2) {
        $voyelles .= "AEUY";
    }
    if ($robustesse & 4) {
        $consonnes .= "23456789";
    }
    if ($robustesse & 8) {
        $consonnes .= "@#$%";
    }
 
    $password = "";
    $alt = time() % 2;
    for ($i = 0; $i < $length; $i++) {
        if ($alt == 1) {
            $password .= $consonnes[(rand() % strlen($consonnes))];
            $alt = 0;
        } else {
            $password .= $voyelles[(rand() % strlen($voyelles))];
            $alt = 1;
        }
    }
    return $password;
}
 
function classeDeEleve ($codeInfo) {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT groupe FROM ".PREFIXETABLES."eleves WHERE codeInfo='$codeInfo'";
	$resultat = executeRequete ($sql, $connexion);
	$ligne = ligneSuivante($resultat);
	Deconnexion ($connexion);
	return $ligne['groupe'];
	}
 
function listeTousEleves () {
	$connexion = connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT codeInfo, nom, prenom FROM ".PREFIXETABLES."eleves";
	$resultat = ExecuteRequete($sql, $connexion);
	$eleves = array();
	while ($ligne = ligneSuivante($resultat)) {
		$codeInfo = $ligne['codeInfo'];
		$nom = $ligne['nom'];
		$prenom = $ligne['prenom'];
		$eleves[$codeInfo] = array('nom'=>$nom, 'prenom'=>$prenom);
		}
	Deconnexion($connexion);
	return $eleves;
	}
 
// --------------------------------------------------------------------
// liste des titualaires ISND / PEDA
function listeTitulaires () {
	$connexion = Connexion (NOM, MDP, BASE, SERVEUR);
	$sql = "SELECT acronyme, nom, prenom, titulaire ";
	$sql .= "FROM ".PREFIXETABLES."profs ";
	$sql .= "WHERE titulaire != ''";
	$resultat = ExecuteRequete($sql, $connexion);
	$data = array();
	while ($ligne = ligneSuivante($resultat)) {
		$acronyme = $ligne['acronyme'];
		$nom = $ligne['nom'];
		$prenom = $ligne['prenom'];
		$classe = $ligne['titulaire'];
		// si le prof est déjà dans la liste des titulaires, on ajoute la présente classe
		// à sa liste de titulariat
		if (isset($data[$acronyme]))
			$data[$acronyme]['classe'] .= ", $classe";
			else $data['acronyme'] = array(
				'classe'=>$classe, 'nom'=>$nom, 'prenom'=>$prenom
				);
		}
	Deconnexion($connexion);
	return $data;
	}
 
### --------------------------------------------------------------------###
// renvoie une liste des identités des titulaires d'un groupe/classe
### --------------------------------------------------------------------###
function titulaires ($groupe) {
	if ($groupe	== Null) die();
	$connexion = Connexion (NOM,MDP,BASE,SERVEUR);
	$sql = "SELECT acronyme, CONCAT(prenom,' ',nom) AS nomProf ";
	$sql .= "FROM ".PREFIXETABLES."profs ";
	$sql .= "WHERE titulaire='$groupe' ";
	$sql .= "ORDER BY concat(nom, prenom) ";
 
	/* $sql = "SELECT ".PREFIXETABLES."titus.acronyme, concat(prenom,' ',nom) as nomProf ";
	$sql .= "FROM ".PREFIXETABLES."titus ";
	$sql .= "JOIN ".PREFIXETABLES."profs ON (".PREFIXETABLES."profs.acronyme = ".PREFIXETABLES."titus.acronyme) ";
	$sql .= "WHERE classe = '$groupe' ";
	$sql .= "ORDER BY concat(nom, prenom) ";
	afficher_silent($sql); */
	$resultat = executeRequete ($sql, $connexion);
	$titulaires = array();
	while ($ligne = ligneSuivante($resultat)) {
		$acronyme = $ligne['acronyme'];
		$titulaires[$acronyme] = $ligne['nomProf'];
		}
	return $titulaires;
}
 
function stringTitulaires ($groupe) {
	$titulaires = titulaires($groupe);
	$stringTitu = implode(", ", $titulaires);
	return $stringTitu;
	}
 
### --------------------------------------------------------------------
// convertir les dates au format usuel jj/mm/AAAA en YY-mm-dd pour MySQL
## ---------------------------------------------------------------------
function dateMysql ($date) {
	$dateArray = explode("/",$date);
	$sqlArray=array_reverse($dateArray);
	$date = implode("-",$sqlArray);
	return $date;
	}
 
### --------------------------------------------------------------------
// converitr les date au format MySQL vers le format usuel
### --------------------------------------------------------------------
function datePHP ($dateMysql) {
	$dateArray = explode("-", $dateMysql);
	$phpArray = array_reverse($dateArray);
	$date = implode("/", $phpArray);
	return $date;
 
	}
 
function heureMySQL ($heure) {
	$heureArray = explode(":",$heure);
	$sqlArray = array_reverse($heureArray);
	$heure = implode(":",$sqlArray);
	return $heure;
	}
 
function heurePHP ($heure) {
	$heureArray = explode(":",$heure);
	$sqlArray = array_reverse($heureArray);
	$heure = implode(":",$sqlArray);
	return $heure;
	}
?>
fonctions_generiques_fonctions.inc.php.txt · Dernière modification: 18/07/2016 11:38 (modification externe)