security_check();
if ($resultat_session == 'c') {
header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes");
die();
} else if ($resultat_session == '0') {
header("Location: ../logout.php?auto=1");
die();
}
// INSERT INTO droits VALUES ('/mod_annees_anterieures/consultation_annee_anterieure.php', 'V', 'V', 'V', 'V', 'V', 'V', 'F', 'Consultation des données d années antérieures', '');
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
//echo "Refus checkaccess";
die();
}
// Si le module n'est pas activé...
if(getSettingValue('active_annees_anterieures')!="y"){
// A DEGAGER
// A VOIR: Comment enregistrer une tentative d'accès illicite?
tentative_intrusion(1, "Tentative d'un ".$_SESSION["statut"]." (".$_SESSION["login"].") d'accéder au module Années antérieures qui n'est pas activé.");
header("Location: ../logout.php?auto=1");
//echo "active_annees_anterieures=".getSettingValue('active_annees_anterieures');
die();
}
$id_classe=isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL;
$logineleve=isset($_GET['logineleve']) ? $_GET['logineleve'] : NULL;
$annee_scolaire=isset($_GET['annee_scolaire']) ? $_GET['annee_scolaire'] : NULL;
$num_periode=isset($_GET['num_periode']) ? $_GET['num_periode'] : NULL;
$mode=isset($_GET['mode']) ? $_GET['mode'] : NULL;
$aff_classe=isset($_GET['aff_classe']) ? $_GET['aff_classe'] : NULL;
$acces="n";
if($_SESSION['statut']=="administrateur"){
$acces="y";
$sql_classes="SELECT DISTINCT id,classe FROM classes ORDER BY classe";
if(isset($id_classe)){
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e,j_eleves_classes jec WHERE jec.id_classe='$id_classe' AND jec.login=e.login ORDER BY e.nom,e.prenom";
}
}
elseif($_SESSION['statut']=="professeur"){
// $AAProfTout
// $AAProfPrinc
// $AAProfClasses
// $AAProfGroupes
$AAProfTout=getSettingValue('AAProfTout');
$AAProfPrinc=getSettingValue('AAProfPrinc');
$AAProfClasses=getSettingValue('AAProfClasses');
$AAProfGroupes=getSettingValue('AAProfGroupes');
//echo "\$AAProfTout=$AAProfTout
";
//echo "\$AAProfPrinc=$AAProfPrinc
";
//echo "\$AAProfClasses=$AAProfClasses
";
//echo "\$AAProfGroupes=$AAProfGroupes
";
if($AAProfTout=="yes"){
// Le professeur a accès aux données antérieures de tous les élèves
$acces="y";
$sql_classes="SELECT DISTINCT id,classe FROM classes ORDER BY classe";
if(isset($id_classe)){
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e,j_eleves_classes jec WHERE jec.id_classe='$id_classe' AND jec.login=e.login ORDER BY e.nom,e.prenom";
//echo "$sql_ele
";
}
}
elseif($AAProfClasses=="yes"){
$acces="y";
$sql_classes="SELECT DISTINCT c.id,c.classe FROM classes c,
j_eleves_groupes jeg,
j_groupes_classes jgc,
j_groupes_professeurs jgp
WHERE jeg.id_groupe=jgc.id_groupe AND
jgc.id_groupe=jgp.id_groupe AND
jgp.login='".$_SESSION['login']."' AND
jgc.id_classe=c.id
ORDER BY c.classe;";
//echo "$sql_classes
";
if(isset($id_classe)){
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e,
j_eleves_classes jec
WHERE jec.id_classe='$id_classe' AND
jec.login=e.login
ORDER BY e.nom,e.prenom";
//echo "$sql_ele
";
}
// On vérifie qu'il n'y a pas tentative d'intrusion illicite:
if(isset($logineleve)){
$sql="SELECT 1=1 FROM j_eleves_classes jec, j_groupes_classes jgc, j_groupes_professeurs jgp
WHERE jec.login='$logineleve' AND
jec.id_classe=jgc.id_classe AND
jgc.id_groupe=jgp.id_groupe AND
jgp.login='".$_SESSION['login']."';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)==0){
// A DEGAGER
// A VOIR: Comment enregistrer une tentative d'accès illicite?
//echo "$sql
";
tentative_intrusion(1, "Tentative d'un ".$_SESSION["statut"]." (".$_SESSION["login"].") d'accéder aux données d'Années antérieures de $logineleve qui n'est pas élève d'une de ses classes.");
header("Location: ../logout.php?auto=1");
die();
}
}
}
elseif($AAProfGroupes=="yes"){
$acces="y";
$sql_classes="SELECT DISTINCT c.id,c.classe FROM classes c,
j_eleves_groupes jeg,
j_groupes_professeurs jgp,
j_eleves_classes jec
WHERE jeg.id_groupe=jgp.id_groupe AND
jgp.login='".$_SESSION['login']."' AND
jeg.login=jec.login AND
jec.id_classe=c.id
ORDER BY c.classe;";
//echo "$sql_classes
";
if(isset($id_classe)){
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e,
j_eleves_classes jec,
j_eleves_groupes jeg,
j_groupes_classes jgc,
j_groupes_professeurs jgp
WHERE jec.id_classe='$id_classe' AND
jec.login=e.login AND
jeg.login=jec.login AND
jeg.id_groupe=jgc.id_groupe AND
jgp.id_groupe=jgc.id_groupe AND
jgp.login='".$_SESSION['login']."'
ORDER BY e.nom,e.prenom";
//echo "$sql_ele
";
}
// On vérifie qu'il n'y a pas tentative d'intrusion illicite:
if(isset($logineleve)){
$sql="SELECT 1=1 FROM j_eleves_groupes jeg, j_groupes_professeurs jgp
WHERE jeg.login='$logineleve' AND
jeg.id_groupe=jgp.id_groupe AND
jgp.login='".$_SESSION['login']."';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)==0){
// A DEGAGER
// A VOIR: Comment enregistrer une tentative d'accès illicite?
//echo "$sql
";
tentative_intrusion(1, "Tentative d'un ".$_SESSION["statut"]." (".$_SESSION["login"].") d'accéder aux données d'Années antérieures de $logineleve qui n'est pas élève d'un de ses enseignements.");
header("Location: ../logout.php?auto=1");
die();
}
}
}
elseif($AAProfPrinc=="yes"){
$acces="y";
$sql_classes="SELECT DISTINCT c.id,c.classe FROM classes c,
j_eleves_professeurs jep
WHERE jep.professeur='".$_SESSION['login']."' AND
jep.id_classe=c.id
ORDER BY c.classe";
//echo "$sql_classes
";
if(isset($id_classe)){
if(getSettingAOui('GepiAccesPPTousElevesDeLaClasse')) {
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e, j_eleves_classes jec
WHERE jec.id_classe='$id_classe' AND
jec.login=e.login
ORDER BY e.nom,e.prenom";
}
else {
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e,
j_eleves_professeurs jep
WHERE jep.id_classe='$id_classe' AND
jep.login=e.login AND
jep.professeur='".$_SESSION['login']."'
ORDER BY e.nom,e.prenom";
}
//echo "$sql_ele
";
}
// On vérifie qu'il n'y a pas tentative d'accès illicite:
if(isset($logineleve)){
$acces_pp="n";
if(is_pp($_SESSION['login'], "", $logineleve)) {
$acces_pp="y";
}
elseif(getSettingAOui('GepiAccesPPTousElevesDeLaClasse')) {
$sql="SELECT DISTINCT jec.id_classe FROM j_eleves_classes jec, classes c WHERE jec.id_classe=c.id AND jec.login='$logineleve' ORDER BY periode,classe;";
$res_class=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_class)>0){
while($lig_tmp=mysqli_fetch_object($res_class)){
if(is_pp($_SESSION['login'], $lig_tmp->id_classe)) {
$acces_pp="y";
break;
}
}
}
}
if($acces_pp!="y"){
// A DEGAGER
// A VOIR: Comment enregistrer une tentative d'accès illicite?
//echo "$sql
";
tentative_intrusion(1, "Tentative d'un ".$_SESSION["statut"]." (".$_SESSION["login"].") d'accéder aux données d'Années antérieures de $logineleve dont il n'est pas ".getSettingValue("gepi_prof_suivi").".");
header("Location: ../logout.php?auto=1");
die();
}
}
}
}
elseif($_SESSION['statut']=="cpe"){
// $AACpeTout
// $AACpeResp
$AACpeTout=getSettingValue('AACpeTout');
$AACpeResp=getSettingValue('AACpeResp');
if($AACpeTout=="yes"){
// Le CPE a accès aux données antérieures de tous les élèves
$acces="y";
$sql_classes="SELECT DISTINCT id,classe FROM classes ORDER BY classe";
if(isset($id_classe)){
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e,j_eleves_classes jec WHERE jec.id_classe='$id_classe' AND jec.login=e.login ORDER BY e.nom,e.prenom";
}
}
elseif($AACpeResp=="yes"){
$sql="SELECT 1=1 FROM j_eleves_cpe WHERE cpe_login='".$_SESSION['login']."'";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0){
$acces="y";
$sql_classes="SELECT DISTINCT c.id,c.classe FROM classes c,
j_eleves_cpe jec,
j_eleves_classes jecl
WHERE jec.cpe_login='".$_SESSION['login']."' AND
jecl.login=jec.e_login AND
jecl.id_classe=c.id
ORDER BY c.classe;";
if(isset($id_classe)){
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e,
j_eleves_cpe jec,
j_eleves_classes jecl
WHERE jecl.id_classe='$id_classe' AND
jecl.login=e.login AND
jec.e_login=e.login AND
jec.cpe_login='".$_SESSION['login']."'
ORDER BY e.nom,e.prenom";
}
// On vérifie qu'il n'y a pas tentative d'intrusion illicite:
if(isset($logineleve)){
$sql="SELECT 1=1 FROM j_eleves_cpe WHERE cpe_login='".$_SESSION['login']."' AND
e_login='$logineleve'";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)==0){
// A DEGAGER
// A VOIR: Comment enregistrer une tentative d'accès illicite?
tentative_intrusion(1, "Tentative d'un ".$_SESSION["statut"]." (".$_SESSION["login"].") d'accéder aux données d'Années antérieures de $logineleve dont il n'est pas responsable.");
header("Location: ../logout.php?auto=1");
die();
}
}
}
}
}
elseif($_SESSION['statut']=="scolarite"){
// $AAScolTout
// $AAScolResp
$AAScolTout=getSettingValue('AAScolTout');
$AAScolResp=getSettingValue('AAScolResp');
if($AAScolTout=="yes"){
// Les comptes Scolarité ont accès aux données antérieures de tous les élèves
$acces="y";
$sql_classes="SELECT DISTINCT id,classe FROM classes ORDER BY classe";
if(isset($id_classe)){
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e,j_eleves_classes jec WHERE jec.id_classe='$id_classe' AND jec.login=e.login ORDER BY e.nom,e.prenom";
}
}
elseif($AAScolResp=="yes"){
$sql="SELECT 1=1 FROM j_scol_classes jsc
WHERE jsc.login='".$_SESSION['login']."';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0){
$acces="y";
$sql_classes="SELECT DISTINCT c.id,c.classe FROM classes c,
j_scol_classes jsc
WHERE jsc.login='".$_SESSION['login']."' AND
jsc.id_classe=c.id
ORDER BY c.classe;";
if(isset($id_classe)){
$sql_ele="SELECT DISTINCT e.nom,e.prenom,e.login FROM eleves e,
j_scol_classes jsc,
j_eleves_classes jec
WHERE jec.id_classe='$id_classe' AND
jec.login=e.login AND
jec.id_classe=jsc.id_classe AND
jsc.login='".$_SESSION['login']."'
ORDER BY e.nom,e.prenom";
}
// On vérifie qu'il n'y a pas tentative d'intrusion illicite:
if(isset($logineleve)){
$sql="SELECT 1=1 FROM j_eleves_classes jec, j_scol_classes jsc
WHERE jec.login='$logineleve' AND
jec.id_classe=jsc.id_classe AND
jsc.login='".$_SESSION['login']."';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)==0){
// A DEGAGER
// A VOIR: Comment enregistrer une tentative d'accès illicite?
tentative_intrusion(1, "Tentative d'un ".$_SESSION["statut"]." (".$_SESSION["login"].") d'accéder aux données d'Années antérieures de $logineleve qui n'est pas élève d'une des classes dont le CPE est responsable.");
header("Location: ../logout.php?auto=1");
die();
}
}
}
}
}
elseif($_SESSION['statut']=="responsable"){
$AAResponsable=getSettingValue('AAResponsable');
if($AAResponsable=="yes"){
// Est-ce que le responsable est bien associé à un élève?
$sql="SELECT 1=1 FROM resp_pers rp, responsables2 r, eleves e WHERE rp.pers_id=r.pers_id AND
r.ele_id=e.ele_id AND
rp.login='".$_SESSION['login']."'";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
//echo "mysql_num_rows(\$test)=".mysql_num_rows($test)."
\n";
if(mysqli_num_rows($test)>0){
$acces="y";
$tab_eleves_resp=array();
if($_SESSION['statut']=='responsable') {
if(getSettingAOui('GepiMemesDroitsRespNonLegaux')) {
$tmp_tab_eleves_resp=get_enfants_from_resp_login($_SESSION['login'], "simple", "yy");
}
else {
$tmp_tab_eleves_resp=get_enfants_from_resp_login($_SESSION['login']);
}
// On récupère un tableau avec login pour le premier indice et nom_prenom pour le 2è, puis on passe à l'élève suivant.
if(count($tmp_tab_eleves_resp)==2) {
$tab_eleves_resp[0]=array();
$tab_eleves_resp[0]['login']=$tmp_tab_eleves_resp[0];
$tab_eleves_resp[0]['nom_prenom']=$tmp_tab_eleves_resp[1];
$tab_class_ele=get_class_from_ele_login($tab_eleves_resp[0]['login']);
if(count($tab_class_ele)>0) {
$tab_eleves_resp[0]['id_classe']=$tab_class_ele['id0'];
}
else {
$tab_eleves_resp[0]['id_classe']=0;
}
}
elseif(count($tmp_tab_eleves_resp)>2) {
$cpt=0;
for($loop=0;$loopChoix des informations antérieures
\n";
tab_choix_anterieure('','',$_GET['ine']);
}
else {
echo " | Choix des informations\n";
echo "
ERREUR: L'année scolaire antérieure ne semble pas avoir été choisie.
\n"; } elseif(!isset($num_periode)){ echo "ERREUR: La période ne semble pas avoir été choisie.
\n"; } else{ bull_simp_annee_anterieure('', '', $annee_scolaire, $num_periode, $_GET['ine']); } } require("../lib/footer.inc.php"); die(); } //================================================================== /* echo ""; print_r($tab_eleves_resp); echo ""; */ //================================================================== if((!isset($id_classe))&&($_SESSION['statut']=='responsable')) { if(count($tab_eleves_resp)==1) { // Normalement, ce cas est géré plus haut $logineleve=$tab_eleves_resp[0]['login']; if(isset($tab_eleves_resp[0]['id_classe'])) {$id_classe=$tab_eleves_resp[0]['id_classe'];} $aff_classe="y"; } else { // Il faut choisir l'élève echo "
Choisissez l'".$gepiSettings['denomination_eleve']." pour lequel vous souhaitez consulter les données d'années antérieures.
\n"; echo "Choisissez la classe dans laquelle se trouve actuellement un ".$gepiSettings['denomination_eleve']." pour lequel vous souhaitez consulter les données d'années antérieures.
"; if(!isset($sql_classes)){ echo "ERREUR: Il semble que la requête de choix de la classe n'ait pas été initialisée.
\n"; require("../lib/footer.inc.php"); die(); } $res1=mysqli_query($GLOBALS["mysqli"], $sql_classes); $nb_classes=mysqli_num_rows($res1); if($nb_classes==0){ echo "ERREUR: Il semble qu'aucune classe ne soit encore définie.
\n"; require("../lib/footer.inc.php"); die(); } // Affichage sur 3 colonnes $nb_classes_par_colonne=round($nb_classes/3); echo "| \n"; echo " | \n"; while ($i < $nb_classes) { if(($i>0)&&(round($i/$nb_classes_par_colonne)==$i/$nb_classes_par_colonne)){ echo " | \n"; echo "\n";
}
$lig_classe=mysqli_fetch_object($res1);
echo "id'>$lig_classe->classe \n"; $i++; } echo " | \n";
echo "
ERREUR: Il semble que la requête de choix de l'".$gepiSettings['denomination_eleve']." n'ait pas été initialisée.
\n"; require("../lib/footer.inc.php"); die(); } //echo "$sql_eleERREUR: Il semble qu'l n'y ait aucun ".$gepiSettings['denomination_eleve']." dans cette classe.
\n"; require("../lib/footer.inc.php"); die(); } else{ echo "Choisissez un ".$gepiSettings['denomination_eleve']." pour lequel vous souhaitez consulter les informations antérieures.
\n"; $nb_eleves=mysqli_num_rows($res_ele); // Affichage sur 3 colonnes $nb_par_colonne=round($nb_eleves/3); echo "| \n"; echo " | \n"; while ($i < $nb_eleves) { if(($i>0)&&(round($i/$nb_par_colonne)==$i/$nb_par_colonne)){ echo " | \n"; echo "\n";
}
$lig_ele=mysqli_fetch_object($res_ele);
echo "login'>$lig_ele->nom $lig_ele->prenom \n"; $i++; } echo " | \n";
echo "
Ou afficher les informations pour toute la classe sur la période choisie:
\n"; echo "\n"; $sql="SELECT DISTINCT ad.annee FROM archivage_disciplines ad, eleves e, j_eleves_classes jec WHERE jec.login=e.login AND jec.id_classe='$id_classe' AND ad.INE=e.no_gep ORDER BY annee ASC;"; //echo "$sql\n"; } } elseif((isset($aff_classe))&&(isset($sql_ele))&&( ($_SESSION['statut']=='administrateur')|| ($_SESSION['statut']=='scolarite')|| ($_SESSION['statut']=='cpe')|| ($_SESSION['statut']=='professeur') )) { echo " | Choisir une autre période ou ".$gepiSettings['denomination_eleve']."\n"; echo "\n"; echo "\n"; $res_liste_ele=mysqli_query($GLOBALS["mysqli"], $sql_ele); if(mysqli_num_rows($res_liste_ele)==0) { echo "
\n"; $res_ant=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ant)==0){ echo "Aucun résultat antérieur n'a été conservé pour cette classe.
\n"; $sql="SELECT 1=1 FROM eleves e, j_eleves_classes jec WHERE jec.login=e.login AND jec.id_classe='$id_classe' AND e.no_gep!='NULL' AND e.no_gep!='';"; //echo "$sql
"; $test_ine=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_ine)==0) { echo "Il se peut que la table 'eleves' souffre de quelques lacunes : Aucun ".$gepiSettings['denomination_eleve']." n'a son numéro INE renseigné.
\n"; } } else{ unset($tab_annees); $nb_annees=mysqli_num_rows($res_ant); $alt=1; echo "
Une Mise à jour d'après Sconet peut permettre de corriger cela (avec un compte administrateur).
Vous pouvez aussi contrôler dans Gestion des bases/Gestion des élèves si une conversion ne vous est pas demandée pour compléter certaines informations.\n"; echo "
\n"; echo "\n"; echo " Bulletins simplifiés: "; $cpt=0; while($lig_ant=mysqli_fetch_object($res_ant)){ $tab_annees[]=$lig_ant->annee; if($cpt>0){ $alt=$alt*(-1); echo "\n"; } echo " \n"; flush(); $cpt++; } echo "$lig_ant->annee : \n"; //$sql="SELECT DISTINCT num_periode,nom_periode FROM archivage_disciplines WHERE annee='$lig_ant->annee' ORDER BY num_periode ASC"; $sql="SELECT DISTINCT num_periode FROM archivage_disciplines WHERE annee='$lig_ant->annee' AND num_periode>'0' ORDER BY num_periode ASC"; $res_ant2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ant2)==0){ echo ""; //echo "Aucun résultat antérieur n'a été conservé pour cet ".$gepiSettings['denomination_eleve']."."; echo "Aucun résultat antérieur n'a été conservé pour l'année ".$lig_ant->annee."."; echo " \n"; } else{ $cpt=0; while($lig_ant2=mysqli_fetch_object($res_ant2)){ //echo "annee&num_periode=$lig_ant2->num_periode&mode=bull_simp'>$lig_ant2->nom_periode \n"; echo "annee&num_periode=$lig_ant2->num_periode&mode=bull_simp'>Période $lig_ant2->num_periode \n"; $cpt++; } } echo ""; $alt=1; echo "
\n"; echo "
\n"; } echo "\n"; echo " Avis des conseils de classes: "; $cpt=0; for($i=0;$i0){ $alt=$alt*(-1); echo " \n"; } echo " \n"; flush(); $cpt++; } echo "\n"; echo "Année-scolaire $tab_annees[$i]"; echo " \n"; echo "
Aucun ".$gepiSettings['denomination_eleve']." n'a semble-t-il été trouvé.
\n"; } else { require("fonctions_annees_anterieures.inc.php"); while($lig_ele=mysqli_fetch_object($res_liste_ele)) { bull_simp_annee_anterieure($lig_ele->login,$id_classe,$annee_scolaire,$num_periode); } } } else{ if(($_SESSION['statut']!='eleve')&&($_SESSION['statut']!='responsable')) { echo " | Choisir un autre ".$gepiSettings['denomination_eleve']."\n"; if(isset($sql_ele)) { $lignes_options_select_eleve=lignes_options_select_eleve($id_classe,$logineleve,$sql_ele); } else { $lignes_options_select_eleve=lignes_options_select_eleve($id_classe,$logineleve); } echo "\n"; echo "\n"; if(isset($annee_scolaire)) { echo "\n"; } if(isset($num_periode)) { echo "\n"; } if(isset($mode)) { echo "\n"; } } require("fonctions_annees_anterieures.inc.php"); if(my_eregi("gecko",$_SERVER['HTTP_USER_AGENT'])){ //echo "gecko=trueERREUR: L'année scolaire antérieure ne semble pas avoir été choisie.
\n"; } elseif(!isset($num_periode)){ echo "ERREUR: La période ne semble pas avoir été choisie.
\n"; } elseif(!isset($id_classe)){ echo "ERREUR: L'identifiant de la classe actuelle de cet ".$gepiSettings['denomination_eleve']." ne semble pas avoir été fourni.
\n"; } else{ bull_simp_annee_anterieure($logineleve, $id_classe, $annee_scolaire, $num_periode); } } elseif($mode=='avis_conseil'){ echo "ERREUR: L'année scolaire antérieure ne semble pas avoir été choisie.
\n"; } else{ avis_conseils_de_classes_annee_anterieure($logineleve,$annee_scolaire); } } } } } require("../lib/footer.inc.php"); ?>