我有一个代码,用于查找是否存在页面,然后将其用作扩展名。例如,当id = example时,包含的文件将是'example.php'。包含似乎不起作用它不寻找文件。
<?php
$page = strip_tags($_GET['id']);
$page = preg_replace("/[^a-zA-Z0-9_\s]/", "", $page);
if($page=='' || $page=='index' || $page=='config')
{
?>
Hello! Welcome to my site.<br />
<?php
if($logged_in==1)
{
?>
If you would like to leave, please <a href='/logout.php'>Logout</a>
<?php
}
else
{
?>
If you are already a member, please <a href='/index.php?id=login'>Login</a>
<?php
}
}
else
{
$filename = $page.".php";
if(file_exists($filename)) {
include ''.$page.'.php';
}
}
?>
我正在研究它只是想也许有人可以提供一些帮助。为什么我的代码不起作用?
答案 0 :(得分:1)
这有一个巨大的安全问题,但是......
试试这个:
<?php
$page = strip_tags($_GET['id']);
$page = preg_replace("/[^a-zA-Z0-9_\s]/", "", $page);
if($page=='' || $page=='index' || $page=='config'){
?>
Hello! Welcome to my site.<br />
<?php
if($logged_in==1){
?>
If you would like to leave, please <a href="/logout.php">Logout</a>
<?php
} else {
?>
If you are already a member, please <a href="/index.php?id=login">Login</a>
<?php
}
} else {
$filename = "$page.php";
if(file_exists($filename)) {
include ("$page.php");
}
}
?>