Иллюстрированный самоучитель по PHP

Гостевая книга

Итак, вот алгоритм работы сценария гостевой книги:

  1. При загрузке посетителем страницы книги просканировать папку с сообщениями, выбрать оттуда сообщения, относящиеся к данной книге (попросту найдя в именах содержащих их файлов индекс этой книги), отсортировать их и вставить в web-страницу.
  2. При вводе посетителем сообщения пересчитать уже имеющиеся и сохранить новое сообщение в файле с именем, состоящим из индекса текущей гостевой книги и временной метки Unix.

    Есть, впрочем, еще одно пожелание. Обратите внимание – если следовать данному алгоритму, то сообщение, помещенное посетителем в гостевую книгу, будет просто вставлено в текст той страницы, на которой она расположена. А это значит, что какой-нибудь злоумышленник вполне может поместить в сообщение гостевой книги код на РНР и тот будет преспокойно выполнен! А результат такого выполнения для владельца сайта непредсказуем. Это может быть и удаление с сайта всех файлов, и размещение на нем совсем не того, что хотелось бы, и массовая почтовая рассылка….Поэтому наш алгоритм следует дополнить еще одним пунктом:

  3. Перед сохранением сообщения посетителя в файл удалить из него все тэги или сделать их нераспознаваемыми ни интерпретатором РНР, ни браузером – например, конвертировав в соответствующие им сочетания символов, попросту отображающие их на экране.

Ну а теперь посмотрим, как все это реализуется на РНР.

В текст каждой web-страницы, на которой должна быть расположена гостевая книга, следует вставить следующий код (см. рис. 9.2):

<?php
$nоm="уникальная аббревиатура книги, без пробелов и специальных символов, например, book01";
include ("niz.php");?>

Думается, смысл этого сценария ясен – вначале устанавливается индекс гостевой книги, а затем включается единый для всех книг файл с собственно отображающим сообщения кодом – в данном случае niz.php.

Поскольку именно код файла niz.php отображает сообщения гостевой книги, то и вышеприведенный фрагмент кода следует помещать именно там, где эти сообщения должны на web-странице располагаться.

Иллюстрированный самоучитель по PHP › Гостевая книга
Рис. 9.2. Всего три файла – и гостевая книга. А можно даже два

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.