diff --git a/manager/database.php b/manager/database.php index b6fb9fb..2c3370d 100755 --- a/manager/database.php +++ b/manager/database.php @@ -7,7 +7,7 @@ require_once __ROOT__.'/manager/repo/semestre.php'; // require_once __ROOT__.'/manager/repo/module.php'; // require_once __ROOT__.'/manager/repo/ue.php'; // require_once __ROOT__.'/manager/repo/note.php'; -debug(); +// debug(); class DBAccess{}; @@ -59,9 +59,24 @@ class DataBase{ /* */ /*************************************************************/ + /* SUPPRIME LES VALEURS À CLÉS NUMÉRIQUES DANS UN FETCH D'UNE TABLE DE LA BDD + * + * @fetchData le résultat d'une $requeteSQL->fetchAll() + * + * @return newFetchData retourne le tableau donné en paramètre mais sans les valeurs à clés numériques + * + */ + public static function delNumeric($fetchData){ + // on supprime les doublons des entrées (indice numérique) + for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs + foreach($fetchData[$i] as $col => $val) // pour toutes les entrées + if( is_int($col) ) // si l'indice est un entier + unset( $fetchData[$i][$col] ); // on le supprime + return $fetchData; + } - + @@ -82,30 +97,7 @@ class DataBase{ /*** création d'un utilisateur dans la bdd ***/ /*********************************************/ public function creerUtilisateur($identifiant, $prenom, $nom, $mail, $mdp, $droits){ - $getLastCount = DataBase::getPDO()->query('SELECT count(identifiant) as count FROM utilisateur'); - $lastCount = (int) $getLastCount->fetch()['count']; - - // on applique une normalisation - $prenom = ucwords( strtolower($prenom) ); // majuscule à chaque mot sinon minuscule - $nom = strtoupper($nom); // nom en majuscules - $mail = strtolower($mail); // email en minuscules - $mdp = sha1($mdp); // on hash le password - - $req = DataBase::getPDO()->prepare("INSERT INTO utilisateur(identifiant, prenom, nom, mail, mdp, droits) VALUES(:identifiant, :prenom, :nom, :mail, :mdp, :droits)"); - - $req->execute(array( - ':identifiant' => $identifiant, - ':prenom' => $prenom, - ':nom' => $nom, - ':mail' => $mail, - ':mdp' => $mdp, - ':droits' => $droits - )); - - $getNewCount = DataBase::getPDO()->query('SELECT count(identifiant) as count FROM utilisateur'); - $newCount = (int) $getNewCount->fetch()['count']; - - if( $newCount > $lastCount ) // si on a bien ajouté un entrée + if( userRepo::creer($identifiant, $prenom, $nom, $mail, $mdp, $droits) ) // si l'utilisateur a bien été créé return 'success'; else return 'error'; @@ -119,25 +111,24 @@ class DataBase{ public function utilisateurInfo($identifiant){ // si l'utilisateur n'existe pas on retourne 'unknown_user' if( !($utilisateurUID=userRepo::UID($identifiant)) ) return 'unknown_user'; - - $getUtilisateurInfo = DataBase::getPDO()->prepare("SELECT identifiant, prenom, nom, mail, droits FROM utilisateur WHERE identifiant = :identifiant"); - $getUtilisateurInfo->execute(array( ':identifiant' => $utilisateurUID )); - - return $getUtilisateurInfo->fetch(); // retourne les info, si pas de résultat, retourne [FAUX] + return userRepo::info($utilisateurUID); } - /* retourne le semestre courant d'un étudiant + /* retourne le semestre en cours d'un étudiant * * @etudiant l'identifiant (UID) de l'étudiant à ajouter au groupe * * @return semestreUID l'UID du semestre courant * */ - public static function studentCurrent($etudiant){ - return '2'; + public static function studentSemestre($etudiant, $semestre_pair, $annee){ + if( $semestre = semestreRepo::studentCurrent($etudiant, $semestre_pair, $annee) ) // si on a un résultat + return $semestre; + else + return 'error'; } /**********************************************************/ @@ -210,16 +201,8 @@ class DataBase{ )); - $userlist = $appartenance->fetchAll(); - - // on supprime les doublons des entrées (indice numérique) - for( $i = 0 ; $i < count($userlist) ; $i++ ) // pour tout les utilisateurs - foreach($userlist[$i] as $col => $val) // pour toutes les entrées - if( is_int($col) ) // si l'indice est un entier - unset( $userlist[$i][$col] ); // on le supprime - - - return $userlist; // on retourne le liste d'utilisateurs + // on fetch tous les utilisateurs & on supprime les doublons des entrées (indice numérique) + return DataBase::delNumeric( $appartenance->fetchAll() ); // on retourne le tout } @@ -604,15 +587,8 @@ class DataBase{ ':UEUID' => $UE['id'] )); - $modulelist = $getModuleList->fetchAll(); // on récupère la liste des modules - - // on supprime les doublons des entrées (indice numérique) - for( $i = 0 ; $i < count($modulelist) ; $i++ ) // pour tout les modules - foreach($modulelist[$i] as $col => $val) // pour toutes les entrées - if( is_int($col) ) // si l'indice est un entier - unset( $modulelist[$i][$col] ); // on le supprime - - $UEList[$iter]['modules'] = $modulelist; // on ajoute la liste des mdules + // on ajoute la liste des modules en supprimant les valeurs à indinces numériques + $UEList[$iter]['modules'] = DataBase::delNumeric( $getModuleList->fetchAll() ); } return $UEList; @@ -673,15 +649,8 @@ class DataBase{ ':annee' => $annee )); - $modulelist = $getModuleList->fetchAll(); // on récupère la liste des modules - - // on supprime les doublons des entrées (indice numérique) - for( $i = 0 ; $i < count($modulelist) ; $i++ ) // pour tout les modules - foreach($modulelist[$i] as $col => $val) // pour toutes les entrées - if( is_int($col) ) // si l'indice est un entier - unset( $modulelist[$i][$col] ); // on le supprime - - return $modulelist; + // on retourne les modules en supprimant les valeurs à indices numériques + return DataBase::delNumeric( $getModuleList->fetchAll() ); } @@ -739,15 +708,8 @@ class DataBase{ ':semestreUID' => $semestreUID )); - $UElist = $getUEList->fetchAll(); // on récupère la liste des modules - - // on supprime les doublons des entrées (indice numérique) - for( $i = 0 ; $i < count($UElist) ; $i++ ) // pour tout les modules - foreach($UElist[$i] as $col => $val) // pour toutes les entrées - if( is_int($col) ) // si l'indice est un entier - unset( $UElist[$i][$col] ); // on le supprime - - return $UElist; + // on retourne la liste d'UEs en supprimant les doublons à clés numériques + return DataBase::delNumeric( $getUEList->fetchAll() ); } @@ -820,15 +782,8 @@ class DataBase{ ':annee' => $annee )); - $modulelist = $getModuleList->fetchAll(); // on récupère la liste des modules - - // on supprime les doublons des entrées (indice numérique) - for( $i = 0 ; $i < count($modulelist) ; $i++ ) // pour tout les modules - foreach($modulelist[$i] as $col => $val) // pour toutes les entrées - if( is_int($col) ) // si l'indice est un entier - unset( $modulelist[$i][$col] ); // on le supprime - - $UEList[$iter]['modules'] = $modulelist; // on ajoute la liste des mdules + // on ajoute la liste des modules en supprimant les valeurs à indinces numériques + $UEList[$iter]['modules'] = DataBase::delNumeric( $getModuleList->fetchAll() ); } return $UEList; @@ -889,15 +844,8 @@ class DataBase{ ':annee' => $annee )); - $UElist = $getUEList->fetchAll(); // on récupère la liste des modules - - // on supprime les doublons des entrées (indice numérique) - for( $i = 0 ; $i < count($UElist) ; $i++ ) // pour tout les modules - foreach($UElist[$i] as $col => $val) // pour toutes les entrées - if( is_int($col) ) // si l'indice est un entier - unset( $UElist[$i][$col] ); // on le supprime - - return $UElist; + // on retourne la liste d'UEs en supprimant les doublons à clés numériques + return DataBase::delNumeric( $getUEList->fetchAll() ); } @@ -1075,7 +1023,7 @@ class DataBase{ // si on a l'UID utilisateur & l'UID groupe => on récupère les modules - $getModuleList = DataBase::getPDO()->prepare("SELECT m.nom as module, m.libelle as modulelib, ctrl.intitule, note.valeur, ctrl.base, ctrl.coefficient ". + $getNoteList = DataBase::getPDO()->prepare("SELECT m.nom as module, m.libelle as modulelib, ctrl.intitule, note.valeur, ctrl.base, ctrl.coefficient ". "FROM note, appartenance as app, semestre as s, module as m, mcc_ue, mcc_module as mcc_m, controle as ctrl ". "WHERE note.id_appartenance = app.id_appartenance ". "AND ctrl.id_controle = note.id_controle ". @@ -1092,21 +1040,14 @@ class DataBase{ "AND app.id_etudiant = :etudiantUID ". "AND s.id_semestre = :semestreUID ". "ORDER BY ctrl.date_publication ASC"); - $getModuleList->execute(array( + $getNoteList->execute(array( ':moduleUID' => $moduleUID, ':etudiantUID' => $etudiantUID, ':semestreUID' => $semestreUID )); - $notes = $getModuleList->fetchAll(); // on récupère la liste des notes - - // on supprime les doublons des entrées (indice numérique) - for( $i = 0 ; $i < count($notes) ; $i++ ) // pour toutes les notes - foreach($notes[$i] as $col => $val) // pour toutes les entrées - if( is_int($col) ) // si l'indice est un entier - unset( $notes[$i][$col] ); // on le supprime - - return $notes; + // on retourne la liste des notes et supprime les doublons à indices numériques + return DataBase::delNumeric( $getNoteList->fetchAll() ); } @@ -1164,7 +1105,7 @@ class DataBase{ return 'unknown_UE'; // si on a l'UID utilisateur & l'UID UE => on récupère les notes - $getUEList = DataBase::getPDO()->prepare("SELECT m.nom as module, m.libelle as modulelib, ctrl.intitule, note.valeur, ctrl.base, ctrl.coefficient ". + $getNoteList = DataBase::getPDO()->prepare("SELECT m.nom as module, m.libelle as modulelib, ctrl.intitule, note.valeur, ctrl.base, ctrl.coefficient ". "FROM note, appartenance as app, semestre as s, module as m, ue, mcc_ue, mcc_module as mcc_m, controle as ctrl ". "WHERE note.id_appartenance = app.id_appartenance ". "AND ctrl.id_mcc_module = mcc_m.id_mcc_module ". @@ -1182,21 +1123,14 @@ class DataBase{ "AND app.id_etudiant = :etudiantUID ". "AND s.id_semestre = :semestreUID ". "ORDER BY m.nom, ctrl.date_publication ASC"); - $getUEList->execute(array( + $getNoteList->execute(array( ':UEUID' => $UEUID, ':etudiantUID' => $etudiantUID, ':semestreUID' => $semestreUID )); - $notes = $getUEList->fetchAll(); // on récupère la liste des notes - - // on supprime les doublons des entrées (indice numérique) - for( $i = 0 ; $i < count($notes) ; $i++ ) // pour toutes les notes - foreach($notes[$i] as $col => $val) // pour toutes les entrées - if( is_int($col) ) // si l'indice est un entier - unset( $notes[$i][$col] ); // on le supprime - - return $notes; + // on retourne la liste de notes et supprime les doublons à indices numériques + return DataBase::delNumeric( $getNoteList->fetchAll() ); } diff --git a/manager/groups.php b/manager/groups.php index c361312..0417acd 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -103,6 +103,33 @@ require_once __ROOT__.'/manager/database.php'; $answer->request = 'permission_error'; break; + /**************************************/ + /* retourne le semestre d'un étudiant */ + /**************************************/ + case 'getSemestre': if( connected() ){ + + $areSetParam = isset($request->etudiant); // les arguments existent + $typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings + $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0; // d'au moins 1 caractère + $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format + + if( $etudiantCheck ){ // si tout les paramètres sont bons + + $semestre = DataBase::getInstance()->studentCurrent($request->etudiant, $_SESSION['semestre_pair'], $_SESSION['annee']); + + if( is_numeric($semestre) ){ // si c'est un nombre, c'est que c'est bon + $answer->request = 'success'; + $answer->semestre = $semestre; + }else + $answer->request = $semestre; + + }else + $answer->request = 'param_error'; + + }else + $answer->request = 'permission_error'; + break; + /*******************************************************************/ /* retourne les utilisateurs de tous les groupes du semestre donné */ diff --git a/manager/repo/group.php b/manager/repo/group.php index 54140f2..6471006 100755 --- a/manager/repo/group.php +++ b/manager/repo/group.php @@ -19,10 +19,8 @@ class groupRepo extends DBAccess{ * */ public static function UID($nom){ - $db = DataBase::getPDO(); - /*** on cherche un groupe avec ce nom ***/ - $getGroupeUID = $db->prepare("SELECT id_groupe as id FROM groupe WHERE nom = :nom"); + $getGroupeUID = DataBase::getPDO()->prepare("SELECT id_groupe as id FROM groupe WHERE nom = :nom"); $getGroupeUID->execute(array( ':nom' => $nom )); @@ -43,10 +41,8 @@ class groupRepo extends DBAccess{ * */ public static function appartenanceUID($etudiant, $groupe, $semestre){ - $db = DataBase::getPDO(); - /*** on cherche un groupe avec ce nom ***/ - $getAppartenanceUID = $db->prepare("SELECT id_appartenance as id ". + $getAppartenanceUID = DataBase::getPDO()->prepare("SELECT id_appartenance as id ". "FROM appartenance ". "WHERE id_etudiant = :etudiant ". "AND id_groupe = :groupe ". @@ -75,8 +71,6 @@ class groupRepo extends DBAccess{ * */ public static function creer($nom){ - $db = DataBase::getPDO(); - /* [1] On vérifie l'existence d'un groupe avec ce nom ======================================================*/ if( $this->UID($nom) ) // si le groupe existe déjà @@ -87,7 +81,7 @@ class groupRepo extends DBAccess{ $nom = strtoupper($nom); // on met le nom en majuscules // on créé et envoie la requête de création du groupe - $creerGroupe = $db->prepare("INSERT INTO groupe(id_groupe, nom) VALUES(default, :nom)"); + $creerGroupe = DataBase::getPDO()->prepare("INSERT INTO groupe(id_groupe, nom) VALUES(default, :nom)"); $creerGroupe->execute(array( ':nom' => $nom )); @@ -109,11 +103,9 @@ class groupRepo extends DBAccess{ * */ public static function ajouterMembre($etudiant, $groupe, $semestre){ - $db = DataBase::getPDO(); - /* [1] On vérifie si l'utilisateur appartient à un groupe pour ce semestre ===========================================================================*/ - $dejaMembre = $db->prepare("SELECT id_appartenance as id ". + $dejaMembre = DataBase::getPDO()->prepare("SELECT id_appartenance as id ". "FROM appartenance ". "WHERE id_etudiant = :etudiant ". "AND id_semestre = :semestre "); @@ -127,7 +119,7 @@ class groupRepo extends DBAccess{ /* [2] On modifie l'appartenance ==============================*/ // création et exécution de la requête de modification de l'appartenance - $ajouterMembres = $db->prepare("UPDATE appartenance ". + $ajouterMembres = DataBase::getPDO()->prepare("UPDATE appartenance ". "SET id_groupe = :groupe ". "WHERE id_appartenance = :appartenanceUID"); $ajouterMembre->execute(array( @@ -140,7 +132,7 @@ class groupRepo extends DBAccess{ /* [2] On créé l'appartenance ==============================*/ // création et exécution de la requête de création d'appartenance - $ajouterMembres = $db->prepare("INSERT INTO appartenance(id_etudiant, id_groupe, id_semestre) ". + $ajouterMembres = DataBase::getPDO()->prepare("INSERT INTO appartenance(id_etudiant, id_groupe, id_semestre) ". "VALUES( ". "(SELECT identifiant FROM utilisateur WHERE identifiant = :etudiant), ". "(SELECT id_groupe FROM groupe WHERE id_groupe = :groupe), ". diff --git a/manager/repo/semestre.php b/manager/repo/semestre.php index 0c54534..d53f40a 100755 --- a/manager/repo/semestre.php +++ b/manager/repo/semestre.php @@ -26,10 +26,8 @@ class semestreRepo extends DBAccess{ return false; // aucun résultat possible - $db = DataBase::getPDO(); - /*** on cherche un semestre avec ce rang et cette année (qui est forcément unique) ***/ - $getSemestreUID = $db->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee"); + $getSemestreUID = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee"); $getSemestreUID->execute(array( ':rang' => $rang, ':annee' => $annee @@ -40,16 +38,63 @@ class semestreRepo extends DBAccess{ } + /* RENVOIE LES INFORMATIONS D'UN SEMESTRE D'UID DONNÉ + * + * @semestreUID l'UID du semestre duquel on veut les infos + * + * @return semestre tableau associatif contenant tout les champs de la BDD pour ce semestre + * + */ + public static function info($semestreUID){ + // on considère que le semestre existe + $getSemestreInfo = DataBase::getPDO()->prepare("SELECT * FROM semestre WHERE id_semestre = :semestreUID"); + $getSemestreInfo->execute(array( + ':semestreUID' => $semestreUID + )); + + // on retourne le résultat en supprimant les doublons à indices numériques + return DataBase::delNumeric( $getSemestreInfo->fetch() ); + } + + + + + + + + + + + /* retourne le semestre courant d'un étudiant * * @etudiant l'identifiant (UID) de l'étudiant à ajouter au groupe * + * @return etudie FALSE si l'étudiant n'est dans aucun semestre en cours * @return semestreUID l'UID du semestre courant * */ - public static function studentCurrent($etudiant){ - - } + public static function studentCurrent($etudiant, $semestre_pair, $annee){ + // on formate les variables + $semestre_pair = ($semestre_pair) ? '1' : '0'; + + $getSemestreUID = DataBase::getPDO()->prepare("SELECT s.id_semestre as id ". + "FROM semestre as s, appartenance as app ". + "WHERE app.id_semestre = s.id_semestre ". + + "AND app.id_etudiant = :etudiant ". + "AND s.annee = :annee ". + "AND s.rang % 2 = :semestre_pair ". + "ORDER BY s.rang DESC"); + $getSemestreUID->execute(array( + ':etudiant' => $etudiant, + ':annee' => $annee, + ':semestre_pair' => $semestre_pair + )); + + // on retourne l'UID du semestre courant + return $getSemestreUID->fetch()['id']; + } diff --git a/manager/repo/user.php b/manager/repo/user.php index 37c028a..aa423e1 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -19,10 +19,8 @@ class userRepo extends DBAccess{ * */ public static function UID($identifiant){ - $db = DataBase::getPDO(); - /*** on cherche un utilisateur avec cet identifiant ***/ - $getUtilisateurUID = $db->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :identifiant"); + $getUtilisateurUID = DataBase::getPDO()->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :identifiant"); $getUtilisateurUID->execute(array( ':identifiant' => $identifiant )); @@ -33,4 +31,88 @@ class userRepo extends DBAccess{ + + /* RENVOIE LES INFORMATIONS D'UN UTILISATEUR D'UID DONNÉ + * + * @utilisateurUID l'UID de l'utilisateur duquel on veut les infos + * + * @return utilisateur tableau associatif contenant tout les champs de la BDD pour cet utilisateur + * + */ + public static function info($utilisateurUID){ + // on considère que le semestre existe + $getUtilisateurInfo = DataBase::getPDO()->prepare("SELECT identifiant, prenom, nom, mail, droits FROM utilisateur WHERE identifiant = :utilisateurUID"); + $getUtilisateurInfo->execute(array( + ':utilisateurUID' => $utilisateurUID + )); + + // on retourne le résultat en supprimant les doublons à indices numériques + return $getUtilisateurInfo->fetch(); + } + + + + + + + + + + + + /* CREE UN NOUVEL UTILISATEUR DANS LA BASE DE DONNES + * + * @identifiant l'identifiant (unique) de l'utilisateur à créer + * @prenom le prénom du nouvel utilisateur + * @nom le nom du nouvel utilisateur + * @mail le mail du nouvel utilisateur + * @mdp le mot de passe du nouvel utilisateur + * @droits les droits à donner au nouvel utilisateur + * + * @return UID l'UID du nouvel utilisateur s'il a bien été créé + * @return created VRAI si l'utilisateur n'existait pas déjà* et qu'il a bien été créé + * (*) Si aucun autre n'avait le même @identifiant + * + */ + public static function creer($identifiant, $prenom, $nom, $mail, $mdp, $droits){ + /* [1] On normalise les données + =================================================================================================*/ + foreach($droits as $droit) + if( !is_int( array_search($droit, getPermissions()) ) ) // si le droit n'est pas dans la liste des droits existants + return false; // on retourne une erreur comme quoi le droit est inexistant + + + $identifiant = strtolower($identifiant); // on met l'identifiant en minuscule + $prenom = ucwords( strtolower($prenom) ); // majuscule à chaque mot sinon minuscule + $nom = strtoupper($nom); // nom en majuscules + $mail = strtolower($mail); // email en minuscules + $mdp = sha1($mdp); // on hash le password (SHA1) + $droits = implode(',', $droits); // on met le droit sous forme de chaine + + /* [2] On vérifie que l'utilisateur n'est pas déjà créé + =================================================================================================*/ + if( $this->UID($identifiant) ) // si on a un résultat, c'est qu'un utilisateur a déjà cet identifiant (UID) + return false; + + /* [3] On créé le nouvel utilisateur + =================================================================================================*/ + $creationUtilisateur = DataBase::getPDO()->prepare("INSERT INTO utilisateur(identifiant, prenom, nom, mail, mdp, droits) ". + "VALUES(:identifiant, :prenom, :nom, :mail, :mdp, :droits)"); + $creationUtilisateur->execute(array( + ':identifiant' => $identifiant, + ':prenom' => $prenom, + ':nom' => $nom, + ':mail' => $mail, + ':mdp' => $mdp, + ':droits' => $droits + )); + + + /* [4] On vérifie que l'utilisateur a bien été créé + =================================================================================================*/ + return $this->UID($identifiant); + + } + + } \ No newline at end of file diff --git a/manager/user.php b/manager/user.php index 1923268..b052a08 100755 --- a/manager/user.php +++ b/manager/user.php @@ -153,7 +153,6 @@ require_once __ROOT__.'/manager/database.php'; * @return Boolean true si l'utilisateur est ok */ function user_authentification($username, $password){ - // [1] On récupère la liste d'utilisateurs (/src/userlist.json) $userList = user_getUserList(); @@ -165,6 +164,7 @@ require_once __ROOT__.'/manager/database.php'; // [4] On récupère les informations dans la base de données if( $utilInfo = Database::getInstance()->utilisateurInfo($username) ){ // si l'utilisateur est dans le BDD + $_SESSION['identifiant'] = $utilInfo['identifiant']; $_SESSION['droits'] = explode(',', $utilInfo['droits']); @@ -175,13 +175,20 @@ require_once __ROOT__.'/manager/database.php'; // on défini si le semestre est pair ou non $_SESSION['semestre_pair'] = semestrePair(time()); - /* TEMPORAIRE */ - $_SESSION['semestre'] = '2'; + /* on récupère le semestre courant si c'est un étudiant */ + if( permission('student') ){ + $semestre = DataBase::studentSemestre( $_SESSION['identifiant'], $_SESSION['semestre_pair'], $_SESSION['annee']); + if( is_numeric($semestre) )// si on a bien récupéré le semestre + $_SESSION['semestre'] = ''.$semestre.''; + else + $_SESSION['semestre'] = null; + } + + return 'success'; }else return 'not_in_db'; - return 'success'; }else return 'wrong_password'; diff --git a/test.php b/test.php index fad5d76..8a531c6 100755 --- a/test.php +++ b/test.php @@ -1,7 +1,6 @@ level_1 = 'getSemestre'; + $request->etudiant = 'mrd1609a'; + + groups_switch_level_1($request, $answer); + + echo var_dump( $answer ); + + echo "






It works !"; + + + + + + + + + + + + + + + + + + + + @@ -66,6 +111,7 @@ require_once __ROOT__.'/manager/security.php'; // echo "






It works !"; +