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();
}
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
die();
}
/*
echo "\$is_posted=$is_posted ";
echo "\$_POST[is_posted]=".$_POST['is_posted']." ";
echo "\$_GET[is_posted]=".$_GET['is_posted']." ";
*/
if((isset($_GET['acces_resp_legal_0']))&&(($_GET['acces_resp_legal_0']=='y')||($_GET['acces_resp_legal_0']=='n'))) {
check_token();
$sql="UPDATE responsables2 SET acces_sp='".$_GET['acces_resp_legal_0']."' WHERE pers_id='".$_GET['pers_id']."' AND ele_id='".$_GET['ele_id']."';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if($update) {
$msg="Modification de l'accès aux données pour pers_id=".$_GET['pers_id']." et ele_id=".$_GET['ele_id']." effectuée. ";
}
else {
$msg="Erreur lors de la modification de l'accès aux données pour pers_id=".$_GET['pers_id']." et ele_id=".$_GET['ele_id']." ";
}
}
if((isset($_GET['envoi_bulletin_resp_legal_0']))&&(($_GET['envoi_bulletin_resp_legal_0']=='y')||($_GET['envoi_bulletin_resp_legal_0']=='n'))) {
check_token();
$sql="UPDATE responsables2 SET envoi_bulletin='".$_GET['envoi_bulletin_resp_legal_0']."' WHERE pers_id='".$_GET['pers_id']."' AND ele_id='".$_GET['ele_id']."';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if($update) {
$msg="Modification de la génération ou non des bulletins pour pers_id=".$_GET['pers_id']." et ele_id=".$_GET['ele_id']." effectuée. ";
}
else {
$msg="Erreur lors de la modification de la génération ou non des bulletins pour pers_id=".$_GET['pers_id']." et ele_id=".$_GET['ele_id']." ";
}
}
if((isset($_POST['is_posted']))&&($_POST['is_posted']=="add_resp_legal_0")&&(isset($_POST['pers_id']))) {
check_token();
$msg="";
$add_ele_id_resp_legal_0=isset($_POST['add_ele_id_resp_legal_0']) ? $_POST['add_ele_id_resp_legal_0'] : array();
$cpt=0;
for($loop=0;$loop0) {
$msg.="Le responsable est déjà associé à l'élève n°".$add_ele_id_resp_legal_0[$loop].". ";
}
else {
$sql="INSERT INTO responsables2 SET pers_id='".$_POST['pers_id']."', ele_id='".$add_ele_id_resp_legal_0[$loop]."', resp_legal='0';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if($insert) {
$cpt++;
}
else {
$msg.="Erreur lors de l'association avec l'élève n°".$add_ele_id_resp_legal_0[$loop].". ";
}
}
}
$msg.=$cpt." élève(s) associé(s) à ce responsable en qualité de \"responsable\" non légal. ";
}
if (isset($is_posted) and ($is_posted == '1')) {
check_token();
$msg="";
//$adr_id_existant=isset($_POST['adr_id_existant']) ? $_POST['adr_id_existant'] : '';
//echo "\$choisir_ad_existante=$choisir_ad_existante ";
$choisir_ad_existante=isset($_POST['choisir_ad_existante']) ? $_POST['choisir_ad_existante'] : '';
//echo "\$choisir_ad_existante=$choisir_ad_existante ";
$tab_nom_prenom_resp=isset($_POST['tab_nom_prenom_resp']) ? $_POST['tab_nom_prenom_resp'] : NULL;
$ok='';
if((isset($add_ele_id))&&(isset($pers_id))) {
$ok='yes';
}
elseif((isset($tab_nom_prenom_resp))&&(($resp_nom=='')||($resp_prenom==''))) {
$ok='no';
}
else {
if($choisir_ad_existante=='oui') {
// On crée la personne si elle n'existe pas et on enchaine avec la page choix_adr_existante.php
$ok='yes';
}
else {
if(!isset($_POST['resp_legal'])) {
$tester_validite_adresse="n";
$ok='yes';
}
else {
$tester_validite_adresse="y";
if(is_array($_POST['resp_legal'])) {
$tmp_resp_legal=$_POST['resp_legal'];
$tester_validite_adresse="n";
$ok='yes';
for($loop=0;$loop";
}
}
}
}
if($ok!='yes'){
$msg.= "Un ou plusieurs champs obligatoires sont vides !";
}
else{
if(!isset($nouv_resp)){
//if(isset($pers_id)){
if((isset($pers_id))&&(isset($tab_nom_prenom_resp))) {
$compte_resp_existe="n";
$test1_login=mysqli_query($GLOBALS["mysqli"], "SELECT login FROM resp_pers WHERE pers_id = '$pers_id'");
if(mysqli_num_rows($test1_login)>0) {
$compte_resp_existe="y";
$lig_login=mysqli_fetch_object($test1_login);
$resp_login=$lig_login->login;
}
$sql="UPDATE resp_pers SET nom='$resp_nom',
prenom='$resp_prenom',
civilite='$civilite',
tel_pers='$tel_pers',
tel_port='$tel_port',
tel_prof='$tel_prof'";
// On permet de modifier l'adresse mail même si on est en mode mon_compte (quand on modifie, c'est alors pour dépanner)
//if((getSettingValue('mode_email_resp')!='mon_compte')&&($compte_resp_existe=='y')&&(isset($mel))) {
if(($compte_resp_existe=='y')&&(isset($mel))) {
$sql.=",mel='$mel'";
}
/*
//if($adr_id_existant!=""){
if((isset($select_ad_existante))&&($adr_id_existant!="")){
$adr_id=$adr_id_existant;
$sql.=",adr_id='$adr_id'";
}
*/
$sql.=" WHERE pers_id='$pers_id'";
//echo "$sql \n";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de la mise à jour dans 'resp_pers'. ";
} else {
// On met également à jour la table utilisateurs si le responsable a un compte
$test1_login = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT login FROM resp_pers WHERE pers_id = '$pers_id'"), 0);
//echo "\$test1_login=$test1_login \n";
if ($test1_login != '') {
$sql="SELECT count(login) FROM utilisateurs WHERE login = '".$test1_login."'";
//echo "$sql \n";
$test2_login = old_mysql_result(mysqli_query($GLOBALS["mysqli"], $sql), 0);
if ($test2_login == 1) {
$sql="UPDATE utilisateurs SET nom = '".$resp_nom."', prenom = '" . $resp_prenom . "', civilite='$civilite'";
//if((getSettingValue('mode_email_resp')!='mon_compte')&&(isset($mel))) {
if(isset($mel)) {
$sql.=", email = '" . $mel . "'";
}
$sql.=" WHERE login ='" . $test1_login ."'";
//echo "$sql \n";
$res = mysqli_query($GLOBALS["mysqli"], $sql);
}
}
}
if(($_SESSION['statut']=='administrateur')&&(isset($_POST['login_sso']))&&(isset($resp_login))&&($resp_login!="")) {
$enregistrer_sso_corresp="y";
if($_POST['login_sso']!="") {
$sql="SELECT login_gepi FROM sso_table_correspondance WHERE login_sso='".$_POST['login_sso']."' AND login_gepi!='".$resp_login."';";
$res_sso=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_sso)>0) {
$lig_sso=mysqli_fetch_object($res_sso);
$sql="SELECT * FROM utilisateurs WHERE login='".$lig_sso->login_gepi."';";
$test_user=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test_user)>0) {
$lig_user=mysqli_fetch_object($test_user);
$msg.="ANOMALIE : La correspondance SSO proposée ".$_POST['login_sso']." est déjà attribuée ";
if($lig_user->statut=="eleve") {
$msg.=" à l'élève ".$lig_sso->login_gepi."";
}
elseif($lig_user->statut=="responsable") {
$msg.=" au responsable ".$lig_sso->login_gepi."";
}
else {
$msg.=" au personnel ".$lig_sso->login_gepi."";
}
$msg.=" Vous devriez faire le ménage pour ne conserver qu'une seule association. ";
$enregistrer_sso_corresp="n";
}
else {
$sql="SELECT * FROM eleves WHERE login='".$lig_sso->login_gepi."';";
$test_user=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test_user)>0) {
$lig_user=mysqli_fetch_object($test_user);
$msg.="ANOMALIE : La correspondance SSO proposée ".$_POST['login_sso']." est déjà attribuée ";
$msg.=" à l'élève ".$lig_sso->login_gepi."";
$msg.=" Vous devriez faire le ménage pour ne conserver qu'une seule association. ";
$enregistrer_sso_corresp="n";
}
else {
$sql="SELECT * FROM resp_pers WHERE login='".$lig_sso->login_gepi."';";
$test_user=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test_user)>0) {
$lig_user=mysqli_fetch_object($test_user);
$msg.="ANOMALIE : La correspondance SSO proposée ".$_POST['login_sso']." est déjà attribuée ";
$msg.=" au responsable ".$lig_sso->login_gepi."";
$msg.=" Vous devriez faire le ménage pour ne conserver qu'une seule association. ";
$enregistrer_sso_corresp="n";
}
else {
$sql="DELETE FROM sso_table_correspondance WHERE login_gepi='".$lig_sso->login_gepi."';";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
$msg.="Suppression d'une scorie : La correspondance SSO proposée ".$_POST['login_sso']." était associée au login ".$lig_sso->login_gepi." qui n'existe plus dans la table 'utilisateurs'. ";
}
}
}
}
}
if($enregistrer_sso_corresp=="y") {
$sql="SELECT login_sso FROM sso_table_correspondance WHERE login_gepi='".$resp_login."';";
$res_sso=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_sso)>0) {
$lig_sso=mysqli_fetch_object($res_sso);
if($lig_sso->login_sso!=$_POST['login_sso']) {
$sql="UPDATE sso_table_correspondance SET login_sso='".$_POST['login_sso']."' WHERE login_gepi='".$resp_login."';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
$msg.="Erreur lors de la mise à jour de la correspondance SSO. ";
}
}
}
else {
$sql="INSERT INTO sso_table_correspondance SET login_sso='".$_POST['login_sso']."', login_gepi='".$resp_login."';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
$msg.="Erreur lors de l'enregistrement de la correspondance SSO. ";
}
}
}
}
}
// On n'insère pas les saisies des champs adr1, adr2,... si une adresse existante a été sélectionnée:
//if($adr_id_existant==""){
if($choisir_ad_existante==""){
//echo "a ";
//if(isset($changement_adresse)){
if((isset($changement_adresse))&&(isset($tab_nom_prenom_resp))) {
//echo "b ";
if($changement_adresse=="desolidariser"){
//echo "c ";
// Recherche du plus grand adr_id
$sql="SELECT adr_id FROM resp_adr WHERE adr_id LIKE 'a%' ORDER BY adr_id DESC";
//echo "$sql \n";
$res1=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res1)==0){
//$adr_id="a1";
$adr_id="a".sprintf("%09d","1");
}
else{
$ligtmp=mysqli_fetch_object($res1);
$nb=mb_substr($ligtmp->adr_id,1);
$nb++;
//$adr_id="a".$nb;
$adr_id="a".sprintf("%09d",$nb);
}
$sql="INSERT INTO resp_adr SET adr1='$adr1',
adr2='$adr2',
adr3='$adr3',
adr4='$adr4',
cp='$cp',
commune='$commune',
pays='$pays',
adr_id='$adr_id'";
//echo "$sql \n";
$res_insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_insert){
$msg.="Erreur lors de l'insertion de la nouvelle adresse. ";
}
else{
$sql="UPDATE resp_pers SET adr_id='$adr_id' ";
$sql.="WHERE pers_id='$pers_id'";
//echo "$sql \n";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de la mise à jour de l'identifiant d'adresse dans 'resp_pers'. ";
}
}
}
elseif(isset($adr_id)){
$sql="UPDATE resp_adr SET adr1='$adr1',
adr2='$adr2',
adr3='$adr3',
adr4='$adr4',
cp='$cp',
commune='$commune',
pays='$pays'
WHERE adr_id='$adr_id'";
//echo "$sql \n";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de la mise à jour de l'adresse dans 'resp_adr'. ";
}
}
}
elseif(isset($adr_id)){
$sql="UPDATE resp_adr SET adr1='$adr1',
adr2='$adr2',
adr3='$adr3',
adr4='$adr4',
cp='$cp',
commune='$commune',
pays='$pays'
WHERE adr_id='$adr_id'";
//echo "$sql \n";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de la mise à jour de l'adresse dans 'resp_adr'. ";
}
}
}
else{
// On redirige vers choix_adr_existante.php
header("Location: choix_adr_existante.php?pers_id=$pers_id");
die();
}
// Partie élèves:
//if(isset($cpt)){
//if((isset($cpt))&&(isset($pers_id))&&($msg=='')){
if((isset($cpt))&&(isset($pers_id))&&($msg=='')&&(isset($tab_nom_prenom_resp))) {
//echo "1 ";
for($i=0;$i<$cpt;$i++){
//echo " $i ";
if(isset($suppr_ele_id[$i])){
//echo "\$suppr_ele_id[$i]=".$suppr_ele_id[$i]." ";
$sql="DELETE FROM responsables2 WHERE pers_id='$pers_id' AND ele_id='$suppr_ele_id[$i]'";
//echo "$sql \n";
$res_suppr=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_suppr){
$msg.="Erreur lors de la suppression de l'association avec l'élève $suppr_ele_id[$i] dans 'responsables2'. ";
}
}
else {
//if(!isset($resp_erreur[$i])){
// On ne cherche pas à modifier les resp_legal
if($resp_legal[$i]==0) {
$sql="UPDATE responsables2 SET resp_legal='$resp_legal[$i]' WHERE pers_id='$pers_id' AND ele_id='$ele_id[$i]'";
//echo "$sql \n";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de la mise à jour de 'resp_legal' pour le responsable $pers_id. ";
}
}
else {
// Pour le responsable affiché, on vient de soumettre $resp_legal[$i] pour l'élève $i
if($resp_legal[$i]==1){$resp_legal2=2;}else{$resp_legal2=1;}
$temoin_erreur="non";
//if(isset($pers_id2[$i])){
if(isset($_POST['pers_id2_'.$i])){
$tmp_pers_id2=$_POST['pers_id2_'.$i];
for($loop=0;$loop\n";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de la mise à jour de 'resp_legal' pour l'autre responsable (".$tmp_pers_id2[$loop]."). ";
$temoin_erreur="oui";
}
}
else {
$sql="UPDATE responsables2 SET resp_legal='0' WHERE pers_id='".$tmp_pers_id2[$loop]."' AND ele_id='$ele_id[$i]'";
//echo "$sql \n";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de la mise à jour de 'resp_legal' pour l'autre responsable (".$tmp_pers_id2[$loop]."). ";
$temoin_erreur="oui";
}
else {
$msg.="Il y avait trop de responsables légaux. Le responsable n°".$tmp_pers_id2[$loop]." est rendu responsable non légal. ";
}
}
}
}
if($temoin_erreur!="oui"){
$sql="UPDATE responsables2 SET resp_legal='$resp_legal[$i]' WHERE pers_id='$pers_id' AND ele_id='$ele_id[$i]'";
//echo "$sql \n";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de la mise à jour de 'resp_legal' pour le responsable $pers_id. ";
}
}
}
}
}
}
if((isset($add_ele_id))&&(isset($pers_id))&&($msg=='')){
if($add_ele_id!=''){
$sql="SELECT 1=1 FROM responsables2 WHERE pers_id!='$pers_id' AND ele_id='$add_ele_id'";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)==0){
$resp_legal=1;
}
else{
$sql="SELECT resp_legal FROM responsables2 WHERE ele_id='$add_ele_id'";
$res_tmp=mysqli_query($GLOBALS["mysqli"], $sql);
$ligtmp=mysqli_fetch_object($res_tmp);
if($ligtmp->resp_legal==1){$resp_legal=2;}else{$resp_legal=1;}
}
$sql="INSERT INTO responsables2 SET pers_id='$pers_id', ele_id='$add_ele_id', resp_legal='$resp_legal'";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de l'ajout de l'élève $add_ele_id. ";
}
}
}
}
else{
// Nouveau responsable:
// Recherche du plus grand pers_id
$sql="SELECT pers_id FROM resp_pers WHERE pers_id LIKE 'p%' ORDER BY pers_id DESC";
//echo "$sql \n";
$res1=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res1)==0){
//$pers_id="p1";
$pers_id="p".sprintf("%09d","1");
}
else{
$ligtmp=mysqli_fetch_object($res1);
$nb=mb_substr($ligtmp->pers_id,1);
$nb++;
//$pers_id="p".$nb;
$pers_id="p".sprintf("%09d",$nb);
}
// Insertion du nouvel utilisateur dans resp_pers:
$sql="INSERT INTO resp_pers SET pers_id='$pers_id',
nom='$resp_nom',
prenom='$resp_prenom',
civilite='$civilite',
tel_pers='$tel_pers',
tel_port='$tel_port',
tel_prof='$tel_prof',
mel='$mel'";
//echo "$sql \n";
$res_insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_insert){
$msg.="Erreur lors de l'insertion dans 'resp_pers'. ";
}
else{
//if($adr_id_existant==""){
//if((!isset($select_ad_existante))||($adr_id_existant=="")){
if($choisir_ad_existante==""){
//echo "
1
";
// Recherche du plus grand adr_id
$sql="SELECT adr_id FROM resp_adr WHERE adr_id LIKE 'a%' ORDER BY adr_id DESC";
//echo "$sql \n";
$res1=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res1)==0){
//$adr_id="a1";
$adr_id="a".sprintf("%09d","1");
}
else{
$ligtmp=mysqli_fetch_object($res1);
$nb=mb_substr($ligtmp->adr_id,1);
$nb++;
//$adr_id="a".$nb;
$adr_id="a".sprintf("%09d",$nb);
}
if(isset($adr_id)){
$sql="INSERT INTO resp_adr SET adr1='$adr1',
adr2='$adr2',
adr3='$adr3',
adr4='$adr4',
cp='$cp',
commune='$commune',
pays='$pays',
adr_id='$adr_id'";
//echo "$sql \n";
$res_insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_insert){
$msg.="Erreur lors de l'insertion de l'adresse dans 'resp_adr'. ";
}
else{
$sql="UPDATE resp_pers SET adr_id='$adr_id' WHERE pers_id='$pers_id'";
$res_update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res_update){
$msg.="Erreur lors de la mise à jour de l'association de la personne avec son adresse. ";
}
}
}
}
else{
//$adr_id=$adr_id_existant;
//echo "
2
";
// On redirige vers choix_adr_existante.php
header("Location: choix_adr_existante.php?pers_id=$pers_id");
die();
}
}
}
if($msg==""){
$msg="Enregistrement réussi (".strftime("Le %d/%m/%Y à %H:%M:%S").").";
}
}
}
$themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?';
//**************** EN-TETE *******************************
$titre_page = "Ajouter ou modifier un responsable";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE ***************************
//debug_var();
if(!getSettingValue('conv_new_resp_table')){
$sql="SELECT 1=1 FROM responsables";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0){
echo "
Une conversion des données responsables est requise.
\n";
}
*/
}
// AFFICHER LE RESPONSABLE COURANT
$sql="SELECT rp.* FROM resp_pers rp WHERE
rp.pers_id='$pers_id'";
//echo "$sql \n";
$res_resp=mysqli_query($GLOBALS["mysqli"], $sql);
$lig_pers=mysqli_fetch_object($res_resp);
$sql="SELECT DISTINCT e.ele_id,e.nom,e.prenom,e.login FROM eleves e ORDER BY e.nom,e.prenom";
$res_ele=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_ele)==0){
echo "
Il semblerait qu'aucun élève ne soit encore dans la base.
\n";
$tab_anomalie_ele_id=array();
$compteur=0;
while($lig_ele=mysqli_fetch_object($res_ele)){
// On ne propose que les élèves n'ayant pas déjà leurs deux responsables légaux
//$sql="SELECT * FROM responsables2 WHERE ele_id='$lig_ele->ele_id'";
$sql="SELECT * FROM responsables2 WHERE ele_id='$lig_ele->ele_id' AND (resp_legal='1' OR resp_legal='2')";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)<2){
if($compteur==0){
echo "\n";
echo " ";
}
else{
echo "
Tous les élèves ont leur deux responsables légaux.
\n";
}
//======================================
$sql="SELECT DISTINCT e.* FROM eleves e, responsables2 r WHERE e.ele_id=r.ele_id AND r.pers_id!='".$pers_id."' ORDER BY e.nom, e.prenom;";
//echo "$sql \n";
$res_ele=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_ele)>0) {
echo "
";
}
//======================================
if(count($tab_anomalie_ele_id)>0) {
echo "
ANOMALIE : Un ou des élèves n'ont pas d'ELE_ID. Comment avez-vous initialisé/importé/créé ces élèves ? En voici la liste :