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

Оглавление (нажмите, чтобы открыть):

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

Гостевая книга php используется многими вебмастерами. Её наличие на сайте улучшает комерческие факторы проекта и поэтому гостевую книгу на php часто используют на сайтах, продающих товары или услуги. В этой статье мы разберём как её создавать.

Наша простейшая гостевая книга должна осуществлять следующим функции:

  • Гость должен ввести своё имя и текст сообщения
  • Дложна проводиться проверка заполнения полей и отправляемых данных
  • Наша гостевая книга php должна быть без mysql
  • Должно быть организованно удаление сообщений

И так будем использовать ООП подход. Продумаем структуру. Исходя из ООП подхода у нас будет интерфейс, от него будет наследоваться класс, в классе будут методы на добавление, выборку, удаление. Так же создадим форму гостевой книги где будут происходить события, которые станут обращаться к методам класса и соответственно добавляться удаляться и тд. Так как мы решили что не будем использовать mysql, то мы будем писать данные в файл. Использовать для этого станем встроенную в интерпритатор php базу данные sqlite3.

PHP скрипты

Apache

PHP Скрипты

Для Дизайна Сайта

Навигация

Партнеры

  • PHP для начинающих
  • Cимволы HTML
  • MySQL: Уроки, руководство
  • cPanel
  • Список кодировок

Главная Страница » Гостевая книга на PHP

GBook

Этот PHP скрипт поможет вам реализовать функцию гостевой книги на вашем сайте. Без использования какой-либо Базы Данных MySQL, она не нужна, чтобы скрипт работал. Скрипт Gbook включает в себя множество мощных SPAM фильтров.

Дальше | v.1.7 | Скачано: раз

@lexGuestbook

@lexGuestbook полностью бесплатный скрипт – основное условие: не убирать копирайт в низу страницы. PHP guestbook устанавливается на ваш сервер и полностью независим от каких-либо других сайтов. Резервное копирование сообщение в PHP guestbook по вашему желанию, хоть каждый день.

Дальше | v.5.0.4 | Скачано: раз

DRBGuestbook

Гостевая книга DRBGuestbook – это бесплатный, простой PHP скрипт, который не требует БД MySql. Не смотря на это, вы можете управлять программой, удалять сообщения, одобрять сообщения, банить пользователей по IP адресу, через защищенную паролем панель администратора.

Дальше | v.1.1.27 | Скачано: раз

Max’s Guestbook

Max’s Guestbook – это простой PHP скрипт гостевой книги. Все сообщения записываются в текстовый файл, по этой причине, БД вам не понадобиться.

Гостевая книга на PHP и MySQL со смайлами и админкой

Доброго времени суток, мой гость.

Несколько недель назад я занимался разработкой скрипта гостевой книги чтобы опубликовать результат в этой статье. Такого рода статья появляется на этом сайте впервые. Скрипт гостевой книги не является актуальным для использования на сайте, но в учебных целях вполне сгодится. Я в том смысле, что это возможность почитать чужой код, разобраться, понять и вынести для себя что-то полезное. А можно и раскритиковать в комментариях.

Вы можете скачать скрипт гостевой книги внизу записи.

Все, кто изучает PHP, нуждается в практике, а гостевая книга — это отличный первый полезный скрипт для написания в целях изучения языка PHP и работы с базой данных MySQL. Кстати, в некоторых учебниках по PHP в конце показывают как писать гостевую книгу, как завершающий этап.

Весь код опубликован на GitHub в открытом доступе, можете использовать его в любых целях.

Скачать скрипт можно по ссылкам внизу статьи.

Вся работа скрипта представлена в виде скриншотов.

Функциональность для пользователя

Главная страница без сообщений

No messages, be the first! — Нет сообщений, станьте первым!

Попробуем добавить сообщение.

Добавление сообщения в гостевую

При добавлении необходимо ввести несколько цифр, это небольшая защита от спама. Ну и собственно результат представлен ниже.

Результат после добавления сообщения в гостевую книгу

Кнопка «Refresh» обновляет страницу, но при этом ваше сообщение, введенное в поле ввода сохраняется.

Это вся функциональность для пользователя.

Функциональность для администратора

В самом низу гостевой есть ссылка «Sign in«, она ведет на страницу входа.

Вход в админку гостевой

Пароль по умолчанию 1234. После ввода мы автоматически перенаправляемся на главную страницу с правами администратора. Рядом с каждым сообщением появляются кнопки с функциями: редактирование, удаление, ответ. По их картинкам понятно какая что делает.

Кнопки для управления сообщениями гостевой книги

При удалении от нас требуют подтверждения, и если нажимаем Yes, то сообщение удаляется и нас переадресовывает на главную.

Подтверждение удаления сообщения из гостевой

При редактировании нам предоставляется форма с полем для редактирования сообщения и кнопка «Save» для сохранения изменений.

Редактирование сообщения в гостевой

И последняя функция у администратора — ответ. Администратор может отвечать на сообщения, для этого нужно нажать на кнопку в конце сообщения и нам предоставят форму для редактирования ответа.

Ответ на сообщение в гостевой

После чего нас возвращает на главную.

Главная гостевой после ответа

Под сообщением, на которое отвечали, появился ответ. Обратите внимание на сообщение других гостей, там имеется смайл, он преобразуется из двоеточия и скобки.

Скачать скрипт

Просмотреть весь код, ничего не скачивая, можно здесь — GuestBook Code.

Скачать скрипт в zip или tar.zip архиве можно на странице с релизами здесь — GuestBook Releases.

В файле Readme.md инструкция по установке скрипта на английском языке.

Для вас это может быть интересно:

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Как написать гостевую книгу на PHP?

Берете, скачиваете, устанавливаете любую понравившуюся CMS с нужным функционалом (или несколько) и разбираетесь как там реализовано.

По сути 3 этапа:
1. Форма
2. Запись полученных через форму данных в БД.
3. Вывод этих данных на страницу/страницы

Возможен промежуточный этап: модерация. Тогда еще права суперпользователя и появление 2 кнопок у каждой записи: удалить, опубликовать.
Это в самом простом деревянном исполнении.
Дальше всю эту конструкцию можно усовершенствовать как душа пожелает.

устанавливаете https://www.webasyst.ru заходите в инсталер находите приложение гостевая книга жмете установить. Займет 10-15 минут

Если хочется написать самому:
берете framework yii2 и пишите. У спеца гостевая книга займет час, Вы думаю за 1-2 дня управитесь. Зато появятся навыки полезные.

Мастер Йода рекомендует:  WML - язык разметки

Работа с базами данных SQL в PHP для новичков

Учебник PHP

Практика

Важное

Регулярки

Работа с htaccess

Файлы, папки

Сессии и куки

Работа с БД

Практика по работе с БД в PHP

Перед чтением см. новые уроки раздела «Важное», которые появились выше.

Практика

Движок PHP

Продвинутые БД

Аутентификация

Практика

Введение в ООП

  • Урок №
    новая вкладка с new.code.mu
    Введение
  • Урок №
    новая вкладка с new.code.mu
    Свойства
  • Урок №
    новая вкладка с new.code.mu
    Методы
  • Урок №
    новая вкладка с new.code.mu
    Свойства и $this
  • Урок №
    новая вкладка с new.code.mu
    Методы и $this
  • Урок №
    новая вкладка с new.code.mu
    public private
  • Урок №
    новая вкладка с new.code.mu
    Конструктор
  • Урок №
    новая вкладка с new.code.mu
    Геттеры сеттеры
  • Урок №
    новая вкладка с new.code.mu
    Свойства только для чтения
  • Урок №
    новая вкладка с new.code.mu
    Один класс — один файл
  • Урок №
    новая вкладка с new.code.mu
    Объекты в массиве
  • Урок №
    новая вкладка с new.code.mu
    Начальные значения свойств в конструкторе
  • Урок №
    новая вкладка с new.code.mu
    Начальные значения свойств при объявлении
  • Урок №
    новая вкладка с new.code.mu
    Свойство из переменной
  • Урок №
    новая вкладка с new.code.mu
    Метод из переменной
  • Урок №
    новая вкладка с new.code.mu
    Метод сразу после создания
  • Урок №
    новая вкладка с new.code.mu
    Цепочки методов в классе
  • Урок №
    новая вкладка с new.code.mu
    Класс как набор методов
  • Урок №
    новая вкладка с new.code.mu
    Наследование классов
  • Урок №
    новая вкладка с new.code.mu
    Модификатор protected
  • Урок №
    новая вкладка с new.code.mu
    Перезапись методов родителя
  • Урок №
    новая вкладка с new.code.mu
    Перезапись конструктора родителя
  • Урок №
    новая вкладка с new.code.mu
    Передача по ссылке
    новая вкладка с new.code.mu
    . текст, код Клонирование объектов
  • Урок №
    новая вкладка с new.code.mu
    Использование объектов в другом классе
  • Урок №
    новая вкладка с new.code.mu
    Передача объектов параметрами
  • Урок №
    новая вкладка с new.code.mu
    Сравнение объектов
  • Урок №
    новая вкладка с new.code.mu
    Оператор instanceof
  • Урок №
    новая вкладка с new.code.mu
    Контроль типов
  • Урок №
    новая вкладка с new.code.mu
    Статические методы
  • Урок №
    новая вкладка с new.code.mu
    Статические свойства
  • Урок №
    новая вкладка с new.code.mu
    Объект со статическими свойствами и методами
  • Урок №
    новая вкладка с new.code.mu
    Константы класса
    новая вкладка с new.code.mu
    . текст, код Наследование и private
  • Урок №
    новая вкладка с new.code.mu
    . текст, код final
    новая вкладка с new.code.mu
    . в стек это Анонимные классы
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Полиморфизм

Абстрактные классы и интерфейсы

Трейты

ООП Магия

Практика

Практика: классы как набор методов

  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс ArrayConvertor
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TagHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FormHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TableHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс SessionShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс CookieShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FileManipulator
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс databaseShell TODO cart корзина flash шаблонизатор роутер контроллер кеш логи фалидатор

Продолжение еще следует

  • .
    по ООП еще много уроков будет, дописываю

Что такое база данных

База данных (сокращенно БД) — это место, в котором хранятся данные сайта.

Это могут быть тексты страниц, списки пользователей с их логинами и паролями, каталоги продукции и другое.

База данных состоит из таблиц. Что такое таблица вы знаете из жизни: это строки и столбцы. А на пересечении строк и столбцов располагаются ячейки.

В базах данных столбцы часто называют полями.

Это легко можно вообразить себе, представив документ Excel. Базой данных будет являться сам документ (книга), а таблицами — каждый лист этой книги.

PhpMyAdmin

Для редактирования баз данных часто пользуются программой PhpMyAdmin.

PhpMyAdmin (читается PHPмайадмин, часто пишут аббревиатуру PMA или ПМА) — это оболочка для работы с базами данных прямо у вас в браузере.

Вы можете править содержимое таблиц, создавать новые базы данных и таблицы — и все это через веб-интерфейс, не зная SQL.

Видео на PhpMyAdmin

Задачи на PhpMyAdmin

Давайте откроем PhpMyAdmin и приступим к изучению его интерфейса.

Чтобы вам было проще с ним освоится, сделайте следующие практические задачи:

  1. Создайте базу данных test.
  2. В ней создайте таблицу users.
  3. В этой таблице сделайте 4 поля (столбца):
    • id (для него нужно поставить галочку AUTO_INCREMENT или A.I.), тип integer,
    • name, тип varchar, 32 символа,
    • age, тип integer,
    • birthday (англ. день рождения), тип date.
  4. Найдите вкладку ‘вставить’ и с ее помощью вставьте несколько строк в эту таблицу При этом поле id заполнять не нужно! Оно заполнится автоматически!
  5. Поредактируйте какую-нибудь запись.
  6. Удалите какую-нибудь запись.
  7. Поменяйте кодировку для таблицы и для всей базы данных (на utf8_general_ci).
  8. Переименуйте таблицу.
  9. Переименуйте базу данных.

AUTO_INCREMENT

Обратите внимание на то, что мы создали поле id и поставили ему галочку AUTO_INCREMENT. Это очень важный шаг!

Теперь при вставке новой записи (строки) в таблицу это поле будет заполняться автоматически уникальным номером.

При этом если мы удалим строку с каким-то id (например 1), то такого id больше никогда не будет.

Зачем нужно поле id?

Затем, чтобы мы всегда могли обратиться к конкретной строке по ее id, например с целью удаления или редактирования.

Типы переменных

В SQL довольно много типов переменных, но чаще всего приходится пользоваться следующими:

  • integer – целочисленный.
  • text – большое текстовое поле.
  • varchar – не очень большое текстовое поле, при этом мы должны задать его размер (он должен быть степенью двойки: 8, 16, 32, 64, 128, 256 и т.д.).
  • date — поле для хранения даты (дата хранится в SQL-формате: год-месяц-день, пример: 2013-06-24).

Как работать с mySQL через PHP

Работа с БД из PHP осуществляется всего лишь с помощью трех функций:

  • mysqli_connect – соединение с сервером и базой данных.
  • mysqli_query — универсальная функция отправки запросов к БД, с помощью нее можно сделать все.
  • mysqli_error — вывод ошибок.

Далее подробнее про каждую из функций.

Устанавливаем соединение с БД

Данный материал есть также в виде видео: https://youtu.be/J8GFuyA_k_8

Прежде, чем начать работать с базой данных из PHP, нужно установить соединение с сервером, на котором эта база находится.

Делается это с помощью функции PHP mysql_connect, которая принимает 3 параметра: имя хоста (сервера), имя пользователя, под которым мы работаем с базой и пароль для этого пользователя.

Если вы работаете на своем компьютере то это будут ‘localhost’, ‘root’ и пароль в виде пустой строки (на некоторых серверах он тоже может быть root). Если ваша база данных в интернете — то эти данные дает вам хостер.

Давайте установим соединение с базой данных:

Посылаем запросы к базе данных

Запросы к базе данных представляют собой обычные строки, которые мы вставляем в функцию PHP mysqli_query (первым параметром это функция принимает переменную, в которую мы записали результат mysqli_connect, в нашем случае это переменная $link):

Принято правило, по которому команды SQL следует писать в верхнем регистре (то есть большими буквами), а все остальное — в нижнем.

Мастер Йода рекомендует:  Как разбивать запрос на страницы (постраничный вывод данных) PHP

Это относиться к командам SELECT, UPDATE, FROM, DELETE, WHERE и другим такого рода.

Конечно, синтаксической ошибки не будет, если вы напишите их маленькими буквами, но принято большими.

Отлавливаем ошибки базы данных

Многие начинающие зачастую не умеют отлавливать ошибки, которые вернула база данных.

Поэтому при работе с БД у них постоянно возникают сложности. Что-то не работает, а что — не понятно, так как ошибок они не видят, так как PHP не выводит ошибки mySQL, если ему об этом не сказать

Чтобы вывести ошибки, следует пользоваться конструкцией or die ( mysqli_error($link) ), которую необходимо добавлять к каждому запросу к БД.

Смотрите пример: mysqli_query($link, $query) or die( mysqli_error($link) );

Таким образом вы сразу будете получать сообщения об ошибках синтаксиса SQL. Обратите внимание на то, что на рабочем сайте эти конструкции следует удалять, чтобы пользователи и тем более хакеры не видели ошибок БД.

Проблемы с кодировками

Зачастую у новичков возникает проблема с кодировками — казалось бы нормальный русский текст в базу данных записывается абракадаброй или вопросиками.

Чтобы не было проблем с кодировками следует придерживаться простых правил:

  • Базу данных следует создавать в кодировке utf8_general_ci.
  • Документ PHP должен быть в кодировке utf8.
  • Таблицы в БД должны быть в utf8_general_ci.
  • На всякий случай сразу после команды mysqli_connect добавьте такое запрос: mysqli_query($link, «SET NAMES ‘utf8′»);

Начнем практиковаться

Сейчас мы с вами начнем изучить SQL запросы на практике. Для этого нам понадобится тестовая таблица в базе данных, заполненная некоторыми данными. Сейчас мы с вами ее сделаем и заполним.

Итак, создайте свою первую базу данных с помощью PhpMyAdmin.

Назовите ее «test».

Создайте в этой базе новую таблицу.

Назовите ее «workers» (англ. работники).

В ней создайте 4 столбца (столбцы по другому называются поля):

  • id – тип integer, не забудьте поставить ему галочку AUTO_INCREMENT (чтобы в этом столбце номера проставлялись автоматически).
  • name (англ. имя) – тип varchar, размером в 256 знаков.
  • age (англ. возраст) — тип integer.
  • salary (англ. зарплата) — тип integer.

Ее заполните тестовыми данными, как показано в таблице ниже (этот шаг обязателен, так как дальше все задачи будут по этой таблице):

id name age salary
1 Дима 23 400
2 Петя 25 500
3 Вася 23 500
4 Коля 30 1000
5 Иван 27 500
6 Кирилл 28 1000

Итак, у нас есть таблица с работниками фирмы, в которой указаны их имена, возрасты и зарплаты (в $). Далее мы будем работать с этой таблицей.

Тестируем работоспособность

Прежде чем начать работу, следует протестировать работоспособность — попробуем сделать какой-нибудь запрос к нашей базе.

Просто скопируйте этот код и запустите его у себя:

Если var_dump($result) вернет resource, то все работает, если же null – то возникли какие-то проблемы. в новых версиях PHP в $result будет лежать объект с данными (всегда будет непустой). Если обработать его через mysqli_fetch_assoc будет или результат или null (про mysqli_fetch_assoc см ниже или видео https://youtu.be/J8GFuyA_k_8 , которое уже было выше в пункте «Устанавливаем соединение»)

В таком случае проверьте все еще раз, уберите последовательно все ошибки PHP, если таковые есть.

Как достать результат

После того, как мы сделали запрос к базе, в переменной $result будет лежать результат этого действия.

Однако лежит он не в той форме, которая нам нужна в PHP, а в той форме, в которой его прислала нам база.

Достать результат в нормальном виде (в массиве) можно с помощью следующего кода:

Как работает последняя строка?

Функция mysqli_fetch_assoc считывает последовательно каждую строку результата, который прислала нам база.

В цикле for мы считываем построчно результат из базы.

Когда цикл дойдет до последней строки — mysqli_fetch_assoc вернет false и цикл for закончит свою работу.

А результат из БД будет лежать в нормальном виде в массиве $data.

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

Этот PHP пакет может использоваться для организации и управления гостевой книгой или простым блогом используя базу данных MySQL. Он может создать необходимую таблицу в базе данных MySQL для хранения записей о гостевой книге, которая может также работать как простой блог.

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

Лицензия — свободно для образовательных целей.

Cоздание гостевой книги на сайте с помощью PHP

Курс по созданию гостевой книги на сайте с помощью PHP можно назвать практическим выполнением тестового задания. Так уж повелось, что гостевая книга для начинающих программистов действительно является неким тестовым заданием по проверке усвоения основ программирования. Наверное, это не случайно, ведь гостевая книга захватывает множество тем — это работа с формами, работа с БД (базой данных), работа с функциями и др.

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

В первом уроке курса создается готовое приложение гостевой книги и затрагиваются такие вопросы, как: добавление и вывод комментариев, авторизация администратора, удаление комментариев, работа с BB-тегами и др.

Во втором уроке курса мы доработаем гостевую книгу и сделаем ее более современной и интерактивной с помощью использования метода AJAX и таких библиотек как jQuery и jQuery UI.

Видеокурс по созданию гостевой книги на PHP, от веб-разработчиков компании WebForMySelf. Создайте свой скрипт гостевой книги с использованием PHP и MySQL.

Все уроки курса:

Количество уроков: 2

Продолжительность курса: 03:59:10

Автор: Кудлай Андрей, Виктор Гавриленко

Автор первого урока Андрей Кудлай. Автор второго урока Виктор Гавриленко.

Описание курса: В первом уроке курса создается готовое приложение гостевой книги и затрагиваются такие вопросы, как: добавление и вывод комментариев, авторизация администратора, удаление комментариев, работа с BB-тегами и др. Во втором уроке курса мы доработаем гостевую книгу и сделаем ее более современной и интерактивной с помощью использования метода AJAX и таких библиотек как jQuery и jQuery UI.

Категории премиум

Все права защищены © 2020
ИП Рог Виктор Михайлович
ОГРН: 313774621200541
Служба поддержки

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

24.03.2010, 00:50

Гостевая книга с mysql
Добрый день. Начинающий в php пытаюсь сделать гостевую книгу. Написал код, исправил все ошибки.

Гостевая книга
Здравствуйте. Помогите пожалуйста доработать данную гостевую книгу index.php 17 24.03.2010, 00:55 2 24.03.2010, 01:22 3 24.03.2010, 01:50 4

Врешь! Не возьмешь
Первое — имя хоста!

Добавлено через 1 минуту

24.03.2010, 01:50
24.03.2010, 01:54 5

ой сори! ведать не проснулся=)

Добавлено через 3 минуты

24.03.2010, 11:02 [ТС] 6

Ага понятно. У меня платный хост, я создал тестовый файл для подключения к MySQL ( с указанием названия хоста в виде 000.0.0.000 имя пользователя и пароль ***но конечно же цифры другие***) и он работает. Но когда я вношу эти данные в РНР код, то получаю вот это https://uh153786.ukrdomen.com/php/GB.php Подключение должно быть вроде правильным.

Добавлено через 7 минут
Да и еще когда я открываю файл через DerectAdmin (непосредственно в корне) он конечно же открывается но без РНР. А в браузере через адрес выдает ошибку.

Добавлено через 23 минуты
И еще, подскажите у меня есть код счетчика без куке с сохранением данных счетчика в файл .txt . Но вот проблема на localhoste он работает, но когда я скидываю на платный хост опять ничего не работает, может в этом случае необходимо реализовать счетчик через MySQL с записью информации счетчика в базу данных или нет? Спасибо за любую помощь!

Пишем гостевую книгу на PHP (вариант на файлах)

Сейчас мы разработаем приложение «Гостевая книга на PHP».

Сообщения будут храниться в файлах, которые расположены в директории RECORDS (позже мы разработаем вариант гостевой книги, основанный на хранении сообщений в базе данных). Код размещен в двух файлах: index.php (отображение сообщений) и addrec.php (добавление сообщений, их проверка и запись в файл).

Итак, создайте файл addrec.php и в той же директории, в которой расположен этот файл создайте директорию RECORDS.

Сначала проверяем, ввел ли пользователь данные и правильно ли он их ввел:

Теперь обрабатываем введенный пользователем текст функциями удаления HTML-тегов и обратных слешей:

В нашей гостевой книге поддерживается полужирное начертание, курсив, подчеркивание, верхние и нижние индексы. Для того, чтобы пользователь мог, к примеру, выделить блок текста в сообщении курсивом, его необходимо заключить в теги и т.д. Поэтому для после того, как текст введен, нужно заменить эти искусственные теги на их реальное HTML-представление:

Открываем файл и добавляем в него, введенную пользователем информацию:

Вызываем скрипт index.php, ответственный за отображение сообщений:

Добавляем код вывода сообщений об ошибках и HTML-код формы добавления сообщения:

После окончания работы с кодом, размещенным в файле addrec.php, форма для добавления сообщений должна иметь следующий вид:

Добавление записи

Имя: *
Город:
E-Mail:
URL:
Сообщение: *
* — поля, обязательные для заполнения

Листинг файла index.php, используемого для отображения сообщений:

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

Если ввести сообщение, то оно отобразится следующим образом:

Предыдущие Добавить запись Следующие

Мы рады приветствовать Вас!

При неправильном заполнении полей гостевой книги отобразится сообщение об ошибке:

Добавление записи

Во время добавления записи произошли следующие ошибки:

Уроки PHP.

Урок 7. Добро пожаловать, или пишем Гостевую книгу.

Итак, мы добрались до чего-то серьезного. Если раньше мы занимались больше «отстраненными» делами, то сегодня мы будем решать реальную задачу, с которой может столкнутся практический любой вебмастер, — написание собственной гостевой книги.

Конечно, можно использовать «гостевые» специализированных серверов, например, какой-нибудь https://guestbook.land.ru/, и лицезреть каждый раз их баннеры; или же взять готовые скрипты, допустим, с CGI.ru, но это тоже не так интересно, потому что автор скрипта писал гостевую книгу не для вашего сайта, а следовательно, такая «гостевуха» может нарушить общую концепцию вашего обожаемого детища.

Ну, думаю, я вас убедил, что «своя рубашка ближе к телу», так что приступим.

Итак, с чего начинается любая программа? Правильно, с постановки задачи. Так, наша гостевая книга прежде всего должна делать следующее:

Сохранять добавленное сообщение.

Производить проверку добавляемого сообщения перед сохранением (в целях безопасности).

Выводить все сообщения на экран.

Это общие формулировки задач, к которым по мере написания кода будут добавляться новые.

Теперь, что нам понадобится? Как вы понимаете, серьезные вещи не пишутся в одном файле. Так что создадим в одной папке следующие файлы:

config.php — здесь будут храниться общие настройки гостевой книги.

base.txt — файл, где будут храниться все сообщения, наша своеобразная база данных.

guest.php — здесь будет содержаться непосредственно наш скрипт.

Все, приготовления на этом окончены и пора переходить к сути дела.

Начинаем писать файл guest.php. Сразу хочу сказать, что практически все действия мы будет записывать в функциях, которые мы изучили на уроке 4. Поверьте, это очень удобно.

Прежде всего сделаем HTML шапку, которая будет выводиться независимо от того, какие действия мы совершаем.

Далее пишем функцию, которая будет выводить форму для добавления сообщения. Она основана на HTML. Код становится более «размашистым», поэтому дальнейшее использование таблиц для его отображения становится невозможным, так что я перехожу к

Ну, я думаю, здесь все понятно: мы прерываем PHP код и пишем HTML, хотя эта часть по-прежнему относится к функции. Свойство action тега Form равно пустой строке, то есть обработчик формы находится в этом же файле. Уже при написании формы мы думаем о защите скрипта и ограничиваем количество вводимых символов свойством maxlength.

Итак, пользователь ввел сообщение и нажал на кнопку «Послать». Что же далее? Понятно, что нам нужно теперь сохранить это сообщение, чем сейчас и займемся.

Напишем в файле config.php следующие строки:

авторы Нижний Новгород https://www.softtime.ru 20-03-04 15 — 00
base.txt вы можете использовать любой другой файл, но я буду называть этот файл именно так.

Теперь название файла-базы занесено в переменную, что значительно облегчит нам жизнь, если мы пожелаем использовать другой файл-базу.

Возвращаемся обратно к нашему основному файлу и пишем в нем следующее:

Ну, это, наверное, тоже несложно. Мы объявляем наши переменные как глобальные, то есть именно те, которые пользователь послал из формы. Далее мы присваиваем переменной $date текущую дату в виде день.месяц.год — часы:минуты:секунды (о функции date() читайте в статье Функция date() — вывод даты и времени в PHP).

Затем имя отправившего сообщения, его адрес и само сообщение присваиваем переменной $text , причем разделяем их знаком ^^, который мы будем использовать для обратного процесса — из строки получать имя, адрес и сообщение. Для этого можно использовать любой символ или сочетание символов, которые не используются на письме, но я выбрал именно ^^.

Далее открываем файл-базу для дозаписи и приписываем в конце файла полученную строку из всех данных.

Итак, что мы имеем? Мы имеем форму для ввода сообщения и функцию для его сохранения. А теперь напишем функцию вывода сообщений.

Договоримся, что сообщения у нас будут выводиться в порядке убывания даты и времени их написания. Кроме того, ограничим число выводимых сообщений определенным числом, указанным в файле config.php , куда и добавляем строку:

$MessOnScreen = 10;

Вы можете установить здесь любое число.

Возвращаемся к guest.php и пишем довольно объемную функцию:

Функцией file() мы получаем массив, где в каждом элементе содержится строка с одним «блоком» — именем писавшего, адресом и его сообщением соответственно. Потом мы «переворачиваем» полученный массив, изменяем порядок элементов на обратный, так что самая последняя запись становится у нас первым элементом массива. Далее мы сравниваем количество элементов в $file (а значит и количество сообщений) с указанным в $MessOnScreen лимитом, и если оно меньше этого значения, то $MessOnScreen устанавливаем в число элементов $file .

Далее выполняется цикл вывода сообщений. С каждым проходом цикла значение переменной цикла увеличивается на единицу. Таким образом самые свежие сообщения (те, что были приписаны позже всех и находятся внизу файла-базы) выведутся первыми, а более старые — последними.

После этого переменной $mess присваиваем массив с элементами:
0-ой элемент — имя
1-ый элемент — адрес электронной почты
2-ой элемент — время добавления сообщения
3-й элемент — само сообщение

Это делается с помощью функции explode(), которая разбивает строку по символам ^^ (помните, говорили об этом выше).

Затем мы выводим в таблице все полученные значения. Если не встречались, то запись эквивалентна

На сегодня все, продолжим на следующем уроке.

Мастер Йода рекомендует:  16 трюков для консоли Linux
Добавить комментарий