<?php
// get all files from pages/ with .php extension
$pages = glob('pages/*.php');
foreach ($pages as $page) {
// remove path
$page_clean = str_replace('pages/', '', $page);
// put it in an array
$allowed_pages = array($page_clean);
// determine that the lank will be index.php?page=%
$page = $_GET['page'] . '.php';
// load page
if(in_array($page, $allowed_pages)) {
include('pages/' . $page);
} else {
echo "Page not found.";
}
}
?>
Il inclut la page que j'appelle mais il renvoie également "Page non trouvée". Qu'est-ce que je fais mal ici?Problème avec un code simple
Un amour
juste une note, vous devriez utiliser 'basename ($ file)' au lieu de 'str_replace'. http://php.net/basename – tj111
Puis-je dire que votre approche est extrêmement dangereuse. Disons que vous avez un code dangereux dans pages/script.php, un méchant pourrait simplement taper index.php? Page = script dans le navigateur web et script.php serait automatiquement chargé. Utilisez switch de if/else si à la place, c'est beaucoup plus de code mais plus sûr. – usoban