Bonjour,
Développant un modèle MVC très simple et je l'espère très classique, je cherche à éviter que le visiteur ne tombe sur un page blanche s'il s'amuse avec les requêtes GET ou qu'une erreur se soit glissée.
Voici le script du routeur :
Et le fichier de configuration :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 require_once(".." . DIRECTORY_SEPARATOR . "public" . DIRECTORY_SEPARATOR . "config". DIRECTORY_SEPARATOR ."config.php"); require_once("router_configuration.php"); if($_GET){ foreach ($routes AS $controller => $actions) { foreach ($actions as $action) { if (in_array($_GET['controller'], array_keys($routes))) { if (isset($_GET['controller']) && $_GET['controller'] == $controller) { require_once(".." . DIRECTORY_SEPARATOR . "controller" . DIRECTORY_SEPARATOR . $controller . '.php'); if (isset($_GET['action']) && $_GET['action'] == $action) { $controller = ucfirst($controller); $obj = new $controller; $obj->$action(); } } } else { header('location:' . RACINE_SITE); } } } }
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $routes = [ 'controller_users' => ['connexion','deconnexion','profil','maj','mdpPerdu','inscription'], 'controller_salles' => ['index','reservation','recherche','reservationDetails','modiPosts','supriPosts'] ]
J'arrive à faire en sorte que lorsque le visiteur modifie la valeur du GET du controller il soit redirigé vers la page d'accueil. En revanche, la même opération avec l'action ne fonctionne pas, le visiteur tombe sur une page blanche en tapant volontairement 'inddex' au lieu de index par exemple :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part if (in_array($_GET['controller'], array_keys($routes)) && in_array($_GET['action'], $actions) ) {
Par avance, merci pour toute aide, même une remarque sur la qualité de ce code
Partager