/** * Execute la commande du manager trouvé, attention si la commande a besoin de paramètres, ils seront générés a partir * de toutes les données passées en POST et les recherchera par clé, pensez donc a donner le bon nom aux inputs des formulaires * pour que la commande trouve bien les variables * * @param array params Tableau de paramètre a passer a la commande * @return json résultat rendu par le manager au format json */ public function dispatch($params) { if ($this->managerFound instanceof Authentification or Authentification::checkUser($this->commandFound['role'], $this->commandFound['strict'])) { if (method_exists($this->managerFound, $this->commandFound['method'])) { $evalCommand = '$this->managerFound->' . $this->commandFound['method'] . '($params)?>'; eval($evalCommand); } else { Response::quickResponse(500, json_encode("La méthode: " . $this->commandFound['method'] . ' n\'est pas présente dans le manager')); } } else { Response::quickResponse(403, json_encode(['message' => 'vous n\'estes pas autorisé a faire cette action'])); } }
<?php session_start(); require 'autoloader.php'; if (!Authentification::checkUser(0)) { header("Location: http://" . $_SERVER['HTTP_HOST'] . "/index.php"); die; } function customCompression($input, $compression) { if ($compression) { return strtr(base64_encode(addslashes(gzcompress(serialize($input), 9))), '+/=', '-_,'); } else { return unserialize(gzuncompress(stripslashes(base64_decode(strtr($input, '-_,', '+/='))))); } } /* REPONSE DU MANAGER */ $managerStatus = isset($_GET['status']) ? $_GET['status'] : null; $managerTitle = isset($_GET['title']) ? $_GET['title'] : 'Oups!'; $managerMessage = isset($_GET['message']) ? $_GET['message'] : 'Erreur interne!'; // on récupère la liste des médecins si donnée $medecinsSearch = isset($_GET['medecins']) ? json_decode(customCompression($_GET['medecins'], false), true) : []; ?> <!DOCTYPE html> <html> <head> <title>Gestion des médecins</title> <meta charset='utf-8'/> <meta name='description' value='Site de test'/>