这个标记有什么问题,它没有搜索页面

时间:2013-11-01 21:05:22

标签: php

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

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

1 个答案:

答案 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");
}
}
?>