index get var include - PullRequest
       18

index get var include

0 голосов
/ 06 января 2010

я делаю маленький сайт

И вместо того, чтобы иметь header.php и footer.php с необходимой информацией (функции, dbconnection, html head) и включать на каждой странице, я бы хотел, чтобы все это было в index.php Но тогда я должен добавить страницы в белый список и все это. Я просто хотел бы иметь возможность поместить его на страницах /, а затем получить к нему доступ с помощью index.php? Page = test

Как бы я включил страницы, не создавая большой белый список? Как насчет использования preg_match и проверки того, что переменная страницы содержит только a-z. нет злых точек. если он содержит только буквы a-z> include? или, может быть, использовать glob и сканировать страницы /, добавить их в массив, чтобы мне не приходилось каждый раз редактировать index.php

скажите, пожалуйста, ваши мысли и идеи

<html>
<head>
<title>SindACC</title>
</head>
<body>

<?php include($page) ?>

</body>
</html>

Ответы [ 5 ]

1 голос
/ 07 января 2010

Если вы не хотите использовать белый список, используйте basename в переменной $page, чтобы исключить любой эксплойт родительского каталога, затем включите файл в каталог pages/. Пока вы не поместите файлы, которые не должны быть видны в этом каталоге, все в порядке.

1 голос
/ 06 января 2010

Я бы определенно выполнил проверку регулярных выражений или даже просто очистил их (например, удалил что-либо, кроме буквенно-цифровых символов), тогда вы можете выполнить проверку file_exists () и, если это удастся, включить

1 голос
/ 06 января 2010

Просто поместите все свои страницы в папку (скажем, «/ pages»). Затем, прежде чем выполнить включение, проверьте, существует ли файл в папке страниц.

0 голосов
/ 06 января 2010

Как сказали другие, убедитесь, что вы очищаете переменную. Вот один из возможных способов, но есть 20 способов сделать это:

function sanitizeAlpha($string)
{
    if (preg_match_all('/([A-Z]|[a-z]/', $string, $matches) > 0)
    {
        return implode($matches[0]);
    } else {
        die('Invalid Page Name');
    }
}
0 голосов
/ 06 января 2010

Иметь каталог для страниц, удалять недопустимые символы из пути к странице и включать только файлы из каталога страниц. Я думаю, у вас есть правильная идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...