如果i 想将其用作"导航系统"?
,这有多安全?$p="main";
if(isset($_GET['page'])){
$p=$_GET['page'];
if($p!=basename($p) || !preg_match("/^[A-Za-z0-9-_]+$/",$p) || $p=="index" || !file_exists($p.".php"))
$p="error";
}
include($p.".php");
实际上我知道,这不是很好,一个原因是:您不能包括子文件夹。主要的问题是,它的安全程度。
我认为以下脚本为您提供了一个良好,安全且易于管理的导航。
$allowed_pages = array(
'home' => 'main.php',
'contacts' => 'contacts.php',
'foo' => './demo_folder/foo.php',
);
if(isset($_GET['page'])
&& array_key_exists($_GET['page'], $allowed_pages))
{
$p = $_GET['page'];
$file_to_include = $allowed_pages[$_GET['page']];
include $file_to_include;
}
else
{
//fallback for when redirect does not work properly
echo 'Page not found. Return to <a href="./">main page</a>';
//redirect to main page
header('Location: ./');
exit();
}