А вот если злоумышленник попытается
открыть файл ../../../../etc/passwd, то наш сценарий будет пытаться открыть файл
../../../../etc/passwd.html, которого никогда не существовало на нашем сервере.
Итак, чтобы ваша CMS умела открывать HTML-файлы, после последней
закрывающей фигурной скобки файла index.php добавьте следующий код:
elseif($p==»file») {
$f = $f . «.html»;
$page = join(· \ file($f));
}
Можно еще, конечно, добавить проверку файла на существование (функция
f iie_exists ()), но с этим, я думаю, вы справитесь и без моей помощи.
15.4. Версия для печати
Наша CMS при выводе страницы выводит ссылку на сценарий print.php,
который должен вывести версию отображаемой страницы, предназначенную
для печати. Версия для печати отличается от обычной версии полным
отсутствием дизайна сайта — просто выводится сама страница. В таком виде
страницу проще распечатать.
Глава 15. Дополнительные функции CMS
193
Вносить изменения в файл index.php не будем, а просто напишем файл
print.php. Данному сценарию нужно передать переменную $id, содержащую
номер страницы. Код сценария print.php приведен в листинге 15.3.
// Подключаемся к серверу БД
mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname);
$id = @htmlspecialchars($id);
$id = @strip_tags($id);
$q = «select * from pages where id=$id limit 1″;
$r = mysql_query($q);
if (mysql_numj:ows ($ r) >0) {
$row = mysql_fetch_array($r);
$page = $page . «$row[header]«;
$page = $page . «
$row[content]«;
$page = $page . «© $SERVf.RJVWE»;
}
else $page = «HeT такой страницы!«;
echo $page;
?>
В следующих главах мы рассмотрим две дополнительные функции CMS —
получение новостей по RSS и работу с LiveJournal.
Глава 16
Работа с RSS:
получаем новости на сайт
16.1. Краткие сведения о RSS
Формат RSS предназначен для публикации информации на сайтах новостей.
Популярность этого формата огромна: он встречается повсеместно, начиная
от передовых информационных Web-сайтов и заканчивая обычными
сетевыми дневниками (блогами).
RSS позволяет публиковать не только новости, но и любую другую
информацию, которую можно разделить на части, например: статьи, обзоры и т. д.
Ограничений на публикуемое содержимое нет.
Программы, которые «понимают» формат RSS, называются агрегаторами.
Подобные программы довольно популярны — ведь если ваш любимый
новостной сайт поддерживает RSS (в большинстве случаев так оно и есть), вам не
придется заходить на сам сайт — агрегатор, который к тому же часто бывает
встроен в браузер, сам подключится к серверу и загрузит последние новости.
Вам останется просмотреть их. Агрегаторы очень удобны, поскольку с их
помощью можно получить все нужные вам новости сразу (в настройках агре-
гаторов можно указать несколько новостных сайтов) и отпадает
необходимость тратить время на посещение новостных сайтов.
Аббревиатура RSS расшифровывается по-разному — в зависимости от
стандарта RSS:
? Really Simple Syndication (RSS 2.0);
? Rich Site Summary (RSS 0.91, RSS 1.0);
? RDF Site Summary (RSS 0.9 и 1.0).
fnaea 16. Работа с RSS: получаем новости на сайт 195
g последнее время практически везде используется формат RSS версии 2.0,
но все же иногда может встретиться и более ранняя версия. В данной главе
мы будем рассматривать самую последнюю версию — 2.0.
16.2. Формат RSS-файла
Прежде чем написать сценарий импорта новостей, познакомимся с форматом
RSS 2.O. В листинге 16.1 представлен типичный RSS-файл, точнее, его
фрагмент, поскольку приводить RSS-файл полностью нет необходимости.
http://itnews.com.ua/Новости Информационных Технологий. Софт
ru
ITnews
http://itnews.com. ua/images/logos/88×31.gif
http://itnews.com.ua/88
3K/height>
HoBOCTH Информационных Texнoлoгий
Tue, 13 Feb 2007 16:42:00- +0200
30
noncK HOBOCTeii
q
196 Часть IV. Разработка собственной CMS
http://itnews.com. ua/s.cgi http://itnews.com.
5th Фев 2011
|
Теги:
|