0

我有一个代码,假设要查找页面是否存在,然后将其用作扩展名。例如,当 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';
}
}
?>

我正在研究它只是想也许有人可以提供一些帮助。为什么我的代码不起作用?

4

1 回答 1

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");
}
}
?>
于 2013-11-01T21:13:33.813 回答