<?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.";
}
}
?>
내가 필요한 페이지가 포함되어 있지만 "페이지를 찾을 수 없습니다"라는 메시지가 표시됩니다. 여기서 내가 뭘 잘못하고 있니?몇 가지 간단한 코드 문제
한 사랑
메모 만 쓰려면'str_replace' 대신'basename ($ file)'을 사용해야합니다. http://php.net/basename – tj111
귀하의 접근 방식이 극도로 위험하다고 말할 수 있습니다. pages/script.php에 위험한 코드가 있다고 가정 해 봅시다. 악의적 인 사람이 index.php? page = 스크립트를 웹 브라우저에 입력하면 script.php가 자동으로로드됩니다. 대신 if/else의 스위치를 사용하십시오. 코드는 훨씬 많지만 보안이 좋습니다. – usoban