innanzi tutto un consiglio al volo ... forse ti conviene fare, per maggiore facilità, un qualcosa del genere
invece di
$all_pages = array('home','news','foto');
un bel
$all_pages = array('home' => 'home.php','news' => 'news.php','foto' => 'foto.php');
in modo che poi
e poi sottocodice:if ( !isset($_GET['page']) || !isset($all_pages[$_GET['page']]) ) { $requiredPage = $all_pages['home']; } else { $requiredPage = $all_pages[$_GET['page']]; }
require_once $requiredPage;
ovviamente un controllino per verificare l'esistenza sarebbe anche cosa buona
un'altra alternativa e verificare se semplicemente il modulo richiesto esiste all'interno di una data cartella e verificando anche che il percorso richiesto sia esattamente quello della cartella dei moduli.
in questo modo sei comunque al sicuro a sufficenza e non devi modificare ogni volta l'elenco dei moduli
il requisito per l'esecuzione infatti dovrebbe essere che il modulo richiesto è un modulo conosciuto e quindi:
- se sta nella cartella che dici tu
- e il modulo esiste nella cartella che dici tu
può essere eseguito
certo, si è soggetti a problemi riguardanti l'upload di file esterni in quella cartella ... ma di certo se posso uppare file esterni in uno spazio web, il mio ultimo pensiero e far comparire un modulo con la scritta sei fesso ^^
---
PS1: per curiosità ... fai un bel var_dump di array search, e guarda cosa restituisce
PS2: comunque per l'utilizzo che fai è più convieniente usare in_array, infatti a te non serve sapere, almeno col codice attuale, l'indice esatto, ma solo se c'è o no
PS3: guarda che sono membro junior e non senior!![]()