![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| DezmASter |
|
||||||||||||||||||||||||||
![]() Дизайнер :) ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1520 Регистрация: 3.2.2006 Где: Украина, Запорожь е Репутация: 1 Всего: 109 |
Последнее время, все чаще и чаще в нашем форуме всплывают вопросы связанные с написанием гостевых книг.
Обычно гостевая книга состоит из двух частей: первая часть выводит записи, а вторая добавляет их. В рассмотренном примере гостевой книги каждая запись хранится в отдельном файле. Имя файла создается автоматически, и состоит из двух частей - префикса и уникального идентификатора. Префикс нам необходим для того, чтобы отличить наш файл, от любого другого находящегося в том же каталоге (Честно говоря, по хорошему, в том же каталоге больше ничего не должно находиться), а уникальный идентификатор необходим для того, чтобы отличить одну запись от другой, и предоставить возможность сортировки записей. В нашем случае префикс будет - "rec", а уникальный идентификатор мы получим с помощью функции time(). Функция time() возвращает текущее время, измеренное в числе секунд с эпохи Unix (1 Января 1970 00:00:00 GMT). Конечно, абсолютно уникальное число мы с помощью этой функции мы получить не сможем, но она нас устроит. Сначала мы рассмотрим исходный текст модуля добавления записи в гостевую книгу. Файл add.php: В переменной $err мы будем хранить сообщения о произошедших ошибках. Если переменная пуста, то ошибок не происходило.
Если переменная $action не пуста, то значит происходит обращение при котором необходимо добавить запись, иначе необходимо просто вывести форму добавления записи. Переменная $action задается в форме с помощью тега <input type=hidden>
Первым делом необходимо проверить введено ли сообщение и указан ли его автор.
после этого мы должны осуществить преобразование введенных данных, проверить их длину. Слишком длинные записи могут сильно испортить внешний вид страницы. Необходимо убрать слеши "\" перед кавычками и заменить специальные символы HTML.
Если не произошло ошибок, то можно заменить специальные символы (такие как ,[i],[u]) на их HTML аналоги (<b>, <i>, <u>)
С помощью регулярного выражения заменим запись типа http://www.codenet.ru/ на <a href=http://www.codenet.ru/>http://www.codenet.ru/</a>
Теперь данные готовы к сохранению в файл. Файлы с записями у нас будут храниться в каталоге ./records.
Все действия произведены, и мы можем смело отправить пользователя на главную страницу гостевой книги, где он сможет увидеть свою запись.
Если переменная $action пуста, то выводим форму добавления записи
Теперь рассмотрим модуль, ответственный за вывод записей гостевой книги. Файл index.php:
Первым делом, с помощью объекта dir, считаем содержимое каталога, в котором у нас хранятся записи. Все идентификаторы записей мы сохраним в массив, для его последующей сортировки.
Теперь самое главное - считываем нужные нам записи и выводим их.
Опять выводим ссылки навигации по гостевой книги "Предыдущие" и "Следующие"
Ну вот вроде все. Скачать исходный текст в архиве можно здесь. А если у вас остались вопросы, вы их можете задать здесь. [B]Авторы: Создатели codenet.ru Сайт авторов: http://www.codenet.ru/ |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |