Как изменить сообщение в гостевой книге php
Перейти к содержимому

Как изменить сообщение в гостевой книге php

  • автор:

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

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

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

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

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

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

$name substr htmlspecialchars $city substr htmlspecialchars $email substr htmlspecialchars $url substr htmlspecialchars $msg substr htmlspecialchars 

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

ifempty $msg nl2br$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg str_replace$msg eregi_replace\\2\\3",$msg$msg str_replace$msg$msg str_replace$msg 

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

 $file fopen fputsfputsfputsfputsfputs fclose 

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

\n" "\n" "\n" > 

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

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

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

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

  Гостевая книга   $dir_rec dir$i 0while $dir_rec->read ifsubstr $names[$i]$i++ > $dir_rec->close @rsort  $count $i$count1 $countifempty $start 0 $start intvalif$start < 0$start 0 print "
"if$count > $start + 10$count $start + 10if$start != 0 "Предыдущие" print "Добавить запись"if$count1 > $start + 10 "Следующие \n" print "

" for$i $start$i < $count$i++ $entry $names[$i]$data file$date $entry$name trim$city trim$email trim$url trim$msg trim $answer trim " \n
&nbsр;" "$name&nbsр;"if!empty "$city&nbsр"if!empty "$email>$email\n"if!empty "$url>$url" "".date$date
\n" "

".$msg."

\n"if!empty "

admin:&nbsр$answer

\n" print "
\n

\n" print "
"if$start != 0 "Предыдущие" print "Добавить запись"if$count1 > $start + 10 "Следующие \n" print "
"

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

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

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

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

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

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

  • Вы не ввели сообщение
  • Вы не ввели имя
  • Неверно введен е-mail. Введите e-mail в виде: softtime@softtime.ru
Имя: *
Город:
E-Mail:
URL:
Сообщение: *
* — поля, обязательные для заполнения

Если Вам нужна частная профессиональная консультация от авторов многих книг Кузнецова М.В. и Симдянова И.В., добро пожаловать в наш Консультационный Центр SoftTime.

Библиотека Интернет Индустрии I2R.ru

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

Зачем может понадобиться гостевая книга Вашему сайту? С ее помощью можно наладить обратную связь с посетителями, выслушать их комментарии по поводу сайта, дать возможность Вашей аудитории поделиться мнениями. Это очень важно, так как действительно позволяет сделать сайт лучше и максимально приблизить его к пользователю. В сети существует множество скриптов гостевых книг. Однако каждый, кто обладает начальными знаниями в PHP, может написать свою гостевую книгу. Зачем? Все очень просто. Написав свой скрипт, Вы можете сделать его исходя из конкретных потребностей Вашего сайта. Обычно в чужих гостевых книгах либо сложно настраивается дизайн, либо сложно управлять ими, либо Вы обязаны сохранять чужие копирайты. Все эти моменты отпадают, когда Вы создаете свой скрипт. Кроме того, немаловажный момент — написание свой гостевой книги позволяет нелишний раз попрактиковаться в программировании :).

Также хочу сказать, что я буду очень рад, если Вы поделитесь своим мнением о статье и выразите комментарии по поводу ее содержания. Если Вам есть что сказать — просьба оставить Ваш комментарий о статье на форуме вебмастеров WebTalk.ru. Там же Вы можете задать любой вопрос, и не только по этой статье, но и по множеству других тем. Ну и, конечно, познакомиться и пообщаться с единомышленниками.

Взять готовый и полностью работоспособный скрипт гостевой книги можно там же на сайте. Оригинал этой статьи, комментарии, мнения и исходники находятся по адресу:
http://www.webtalk.ru/showthread.php?s=&threadid=35

Статья будет расширяться, пополняться новой информацией и, возможно, апдейтами. Поэтому советую посетить эту страницу чтобы получить самую последнюю информацию. На форуме также есть рассылка «PHP для начинающих», в которой очень много важной информации для новичков. Если Вам что-то непонятно в этой статье, то Вам обязательно нужно ознакомиться с этой рассылкой. Выпуски выходят регулярно и содержат массу полезной обучающей информации.

Чтобы понять информацию в этой статье, Вам потребуются самые начальные знания по PHP. Если Вы хотите протестировать этот пример на домашнем компьютере, Вам нужно установить и настроить на домашнем компьютере вебсервер Apache и язык программирования PHP. Для этого я очень рекомендую прочитать мою статью Вебсервер в домашних условиях, в которой подробно и по шагам описывается процесс установки и настройки домашнего вебсервера. Выполнив описанные действия вы получите полноценный работающий сервер с полным набором возможностей и сможете тестировать скрипты в домашних условиях.

Чтобы запустить гостевую книгу на сайте, Вам понадобиться хостинг с поддержкой PHP. Я рекомендую Вам хостинг-провайдера RunWeb.Ru. У них поддержка PHP включена в любом, даже самом бюджетном тарифном плане, а служба поддержки всегда поможет, ответит на любой вопрос и решит любую проблему — проверено.

Структура программы

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

Гостевая книга состоит их нескольких файлов. Каждый выполняет свои действия, предназначенные только ему. Сразу определимся со структурой программы. Подразумевается, что файлы гостевой книги размещаются в отдельном каталоге. Я рекомендую Вам выделить для тестирования скрипта отдельный хост в Вашем Apache (если Вы прочитали статью про установку Apache, то Вам не составит труда сделать это). Давайте теперь рассмотрим структуру файлов подробно:

  • Главный каталог «/»:
  • /index.php — главный файл гостевой книги. Он выводит все сообщения.
  • /add.php — скрипт добавления сообщений в базу.
  • /inc.php — файл, содержащий настройки гостевой книги
  • Каталог данных «/data»:
  • /data/header.php — дизайн верхушки страниц
  • /data/footer.php — дизайн низа страниц
  • /data/guest.dat — база данных гостевой книги
Каталог данных

Отдельно расскажу про файлы в каталоге data. Файлы header.php и footer.php задают общий дизайн страниц гостевой книги. Как минимум они должны содержать обязательные тэги html-документа. Рассмотрим структуру html документа:

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

Как видите, до комментария есть обязательные тэги. Это — верхушка документа и их нужно разместить в файле header.php. Все что ниже этого комментария — нужно разместить в файле footer.php. В нашем случае это всего две строчки закрывающие обязательные тэги и . Кроме того, обратите внимание, оба файла являются php скриптами, поэтому Вы можете использовать в них любые php-тэги.

Файл data/guest.dat содержит данные гостевой книги. Эти данные выводятся файлом index.php, а добавляются в него файлом add.php (см. структуру программы выше). По умолчанию, когда сообщения отсутствуют, этот файл пустой. Чтобы не отвлекаться в дальнейшем, сразу сделайте каталог data и создайте в нем три файла. guest.php оставьте пустым, а в header.php и footer.php запишите html из примера, приведенного выше. Готово? Тогда продолжим.

Файл настроек гостевой книги

Файл настроек в нашей гостевой книге — inc.php. В нем записываются имена файлов данных, описанных выше, а также некоторые другие переменные. Это сделано для того, чтобы при необходимости не редактировать все скрипты, изменяя пути или имена файлов, а просто изменить значения переменных в inc.php. Кстати, учитесь выносить такие переменные как пути к служебным файлам, формат дат или административный email в отдельные файлы настроек. Возьмите за правило называть его одинаково во всех Ваших программах. Это избавить Вас в дальнейшем от копания в исходных кодах да и просто является хорошим тоном в программировании.

Вот код файла настроек:

Переменные $header, $footer и $data, как Вы уже догадались, задают пути к уже известным нам файлам в каталоге «data».

Переменная $data_format задает формат дат, которые указываются в заголовке сообщения (когда и во сколько оно было добавлено). В варианте «d-m-y H:i» это означает «день-месяц-год Часы-Минуты». Например, сообщение, добавленное 10 января 2004 года в 21:30 будет выглядеть как «01-01-04 21:30».

Переменная $admin_email указывает Email администратора гостевой книги. Переменная $notify указывает нужно ли отправлять по адресу $admin_email уведомления о добавлении новых сообщений. Если установить $notify=0, уведомления отправляться не будут, если поставить $notify=1, то при добавлении сообщения в гостевую книгу администратору будет отправляться письмо. Как это работает — увидите дальше.

Добавление сообщений

Добавление сообщения производит файл add.php.

Это — практически самый важный файл в гостевой книге. Он осуществляет проверку формы сообщения, формирование и добавление его в базу данных, уведомление администратора и т.п. Рассмотрим его код:

Ошибка: $s
"; ?> Добавление сообщения:
Ваше имя: * Ваш Email: Адрес сайта: Текст сообщения: *

Поля, отмеченные звездочкой (*) обязательны к заполнению. // проверка на существование файла с данными гостевой книги if (!file_exists($data)) < echo "Ошибка! Файл с данными отсутствует!"; include $footer; exit(); >// если сообщение еще не добавляется, выводим форму if (!$a) show_form(); // если сообщение добавляется, проверяем форму на ошибки if (!$name) show_form("Укажите Ваше имя!"); if (!$message) show_form("Вы не заполнили сообщение!"); // формируем сообщение if ($email) $name = "$name"; if ($url) $name .= ", $url"; $name .= ", ".date($data_format, time()); $message = str_replace("<","<",$message); $message = str_replace("\n","
",$message); $s .$name."
".$message."

"; // записываем его в файл $f = fopen($data, "a"); fputs($f, stripslashes($s)); fclose($f); // уведомление администратора о новом сообщении if ($notify) @mail($admin_email, "НОВОЕ СООБЩЕНИЕ", "В Гостевую книгу добавлено новое сообщение!", "From: $email"); echo "Сообщение успешно добавлено!
"; echo "Вернуться в гостевую книгу"; include $footer; ?>

рекомендуем также:

Веб-сервисы.
Для профессионалов

Теперь давайте рассмотрим работу этого скрипта:

1. Функция show_form() выводит html-форму добавления сообщения. Как Вы видите, ей передается необязательный параметр $s=»», а также через раздел global все переменные формы. Эти переменные подставляются в поля формы при повторном ее вызове, чтобы пользователь не заполнял их повторно. Важный момент — форма содержит скрытое поле a ( ), которое передает переменную $a=1. Тут и скрыт алгоритм вызова формы. Работает он следующим образом:

  • Выполнение скрипта начинается с проверки на существование файла с данными гостевой книги. Далее проверяется, установлена ли переменная $a, которая передается из формы. По сути, здесь проверяется, выводилась ли форма и если нет (переменная $a не установлена), она выводится.
  • Далее в форме вместе с данными передается параметр $a и скрипт вызывается еще раз путем нажатия кнопки «Добавить сообщение» (submit). Теперь он видит эту переменную и продолжает выполнение.

2. Далее проверяется, заполнены ли обязательные поля $name и $message. Email и адрес сайта пользователь может не указывать — ведь сайта у посетителя может и не быть, а Email хотят указывать не все. Здесь и нужен необязательный параметр функции $s=»». В случае, если какое-то из полей не заполнено, в нем передается сообщение об ошибке и форма вызывается снова. Как видите, в show_form() проверяется, заполнен ли этот параметр. Если он присутствует — то строка $s выводится на экран.

4. Теперь сообщение записывается в файл данных (data/guest.dat). Для этого файл открывается с параметром «a» (добавление в конец файла).

5. И последний важный шаг — отправка уведомления о новом сообщении администратору. Если задана переменная $notify, то с помощью функции mail() сообщение отправляется. На случай, если Вы не знакомы с функцией mail() объясню ее синтаксис. mail() принимает 4 параметра. Первый — это email, на который нужно отправлять сообщение. Второй — это тема письма, третий — текст сообщения, а четверый — дополнительные RFC заголовки. В них мы указываем параметр «From: «, то есть от кого пришло сообщение. В качестве «From: » указывается Email пользователя, добавившего сообщение.

6. Под конец выводится строка «Сообщение успешно добавлено!» и файл с нижней частью документа.

Вывод сообщений

Как Вы помните из структуры программы, выводим сообщений занимается файл index.php. Рассмотрим его код:

 // проверка количества сообщений. // если файл пустой - пишем, что сообщения отсутствуют. $f = file($data); if (!count($f)) < echo "Сообщения в гостевой книге отсутствуют.
". "Добавить сообщение"; include $footer; exit(); > // выводим все сообщения echo "Добавить сообщение
"; echo implode($f,""); echo "
Добавить сообщение"; include $footer; ?>

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

Задачи для самостоятельной работы

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

    Вы можете очень просто добавить скрипт администрирования (удаления и редактирования сообщений). Для этого придется модифицировать формат хранимых сообщений. Подсказка: можно сделать файл данных таким образом, чтобы отдельные сообщения хранились на разных строках в файле guest.dat, а поля сообщения разделялись каким-нибудь специальным символом (только не забудьте заменить этот символ в добавляемом сообщении, а также символы переноса строки «\n» ! Переносы можно заменить на «
    «). База сообщений может выглядеть так:

1~имя~email~url~сообщение 2~имя~email~url~сообщение 3~имя~email~url~сообщение

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

Профессиональное руководство по SQL Server: хранимые процедуры, XML, HTML

Это основные идеи. Однако они (особенно модификация базы) являются основой скрипта уже совсем другого уровня 🙂 Попробуйте сделать и, возможно, придумать что-то свое. Ведь после освоения новой информации главный шаг — ее закрепление. Только одна просьба — если Вы модифицируете скрипт, поделитесь своим творчеством с общественностью на форуме вебмастеров WebTalk.ru. Многие будут Вам благодарны!

Заключение

Как видите, написать гостевую книгу совсем не сложно. Конечно, этот пример является лишь основой для настоящего скрипта, но вполне достаточен для новичка. Теперь Вы сами можете написать гостевую книгу. Если раньше для Вас это было проблема — считайте что Вы сделали большой шаг вперед :).

Удачи Вам! И заходите на наш форум.

Разрешено любое распространение при сохранении всех копирайтов.

Статьи по теме:

  • Динамическая навигация на PHP
  • Технологии чата – новые возможности
  • Голосование на РНР!
  • Программируем на РНР
  • Гостевая — это просто
  • Использование паттернов в PHP
  • Объектно-ориентированное программирование на PHP
  • PHP Edit v5.6

Практика создания гостевой книги

Создадим файл index.php и создадим в нем форму, которая будет добавлять сообщения. Это будет простейшая гостевая книга, без всяких проверок. Просто научимся как добавлять данные в текстовые файлы и считывать их от туда.

Создаем форму:
— action = «index.php» — экшеном будет текущий файл;
— method = «post» — метод передачи данных будет — post ;

Чтобы связать поле для ввода имени с ярлыком label указываем ;

Файл index.php

header ( «Content-type: text/html; charset=utf-8» );
error_reporting ( -1 );
?>

Принятие данных из формы

Далее нам необходимо принять данные из этой формы и сохранить сообщение в текстовом файле.
Для этого проверим, если у нас не пуст массив $_POST , то вызовем некую функцию: save_mess.
Соответственно данную функцию необходимо где-то описать — это будет наша пользовательская функция . Создадим под нее отдельный файл — funcs.php и опишем там нашу функцию save_mess .
Она будет принимать из массива $_POST поля «name» и «text» и формировать из них единую строку. В переменную $str запишем то, что содержиться в $_POST[‘name’] и то, что содержиться в $_POST[‘text’] . Для того, чтобы они не сливались друг с другом, поставим между ними разделитель, например ‘ | ‘. Запишем сюда через разделитель еще и дату — date(‘Y-m-d H:i:s’) с нужным нам форматом.

Отделять различные сообщения мы будем с помощью специального разделителя — «\n***» ,
— где \n — перенос строки.

Далее записываем все в файл gb.txt с помощью функции file_put_contents .
Добавляем в функцию третий параметр — константу FILE_APPEND , чтобы наши сообщения не перезаписывались.

Файл funcs.php

— файл funcs.php — функция save_mess() —

function save_mess () <
$str = $_POST [ ‘name’ ] . ‘|’ . $_POST [ ‘text’ ] . ‘|’ . date ( ‘Y-m-d H:i:s’ ) . «\n***\n» ;
// записываем все в файл gb.txt с помощью функции file_put_contents
file_put_contents ( ‘gb.txt’ , $str , FILE_APPEND );
>
?>

В индексном файле подключаем наш файл (funcs.php) с помощью функции require_once

Теперь, когда мы отправим данные из формы, сработает условие if(!empty($_POST)) и будет вызвана функция save_mess() , которая получит в одну строку данные $str и запишет эту строку в указанный файл gb.txt

Файл index.php

header ( «Content-type: text/html; charset=utf-8» );
error_reporting ( -1 );

require_once ‘funcs.php’ ; // подключаем файл funcs.php

// принятие данных из формы
// если у нас не пуст массив $_POST, то вызовем некую функцию: save_mess
if (! empty ( $_POST )) <
save_mess(); // пользовательская функция
>
?>

Введем в поля данные:

guest01

После отправления сообщения будет создан файл gb.txt и в нем появится первая запись:

Файл gb.txt

Андрей|Привет!
Это первое сообщение|2019-05-03 00:35:44
***

Все последующие сообщения будут отделены друг от друга разделителем «***«.

Решаем проблему F5

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

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

Здесь можно просто записать в index.php: header(«Location: index.php») , а можем ипользовать дополнительную возможность PHP — можем использовать суперглобальную переменную — массив $_SERVER , и его элемент — php_self , который вернет нам имя текущего скрипта, то есть, мы сделаем редирект на этот же самый скрипт. Используя $_SERVER[‘PHP_SELF’] , мы делаем наш скрипт чуть более универсальным. Можно так-же заменить экшен в форме .

В индексном файле допишем: header(«Location: «) ;

Обязательно не забываем об exit или die , чтобы код, который идет ниже, не выполнялся.

Файл index.php

Считывание файла

Для этого создадим в индексном файле переменную $messages в которую и будем считывать данные с помощью пользовательской функции get_mess

Файл index.php

.
.
.
if (! empty ( $_POST )) <
save_mess();
// редирект на этот же самый скрипт
header ( «Location: $_SERVER [ ‘PHP_SELF’ ]> » );
exit ;
>
$messages = get_mess ();
//echo $messages = get_mess();
.
.
.
?>

Функция get_mess() — эта функция будет просто вызывать функцию file_get_contents и возвращать результат.

Файл funcs.php

— файл funcs.php — функция get_mess() —

.
.
.
function get_mess () <
// возвращаем результат работы функции file_get_contents return file_get_contents ( ‘gb.txt’ );
> ?> После обновления страницы получаем: Андрей|Привет! Это первое сообщение|2019-05-03 00:45:18 *** Вася|Привет! Это второе сообщение|2019-05-03 00:45:48 *** Петя|)))))|2019-05-03 21:32:13 ***

Разбиваем строку по разделителю

Данные получены, но они получены в одну строку.

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

В переменную $messages мы вернем результат работы пользовательской функции array_mess() , которая будет фактически из строки получать массив.

Файл index.php

Опишем функцию array_mess() в файле funcs.php. В качестве параметра она принимает строку с сообщениями $messages .

С помощью функции explode разобьем строку по разделителю.

Первым параметром будет наш разделитель ( «\n***\n» ) — двойные кавычки — обязательны, потому что есть символы переноса строк.

Вторым параметром будет наша строка — $messages .

Далее вернем $messages и распечатаем сообщения.

Напишем еще одну пользовательскую функцию, для распечатки массива в форматированном виде print_arr() . Параметром она будет принимать массив $arr .

Файл funcs.php

— файл funcs.php — функции array_mess() и print_arr() —

.
.
.
function array_mess ( $messages ) $messages = explode ( «\n***\n» , $messages );
return $messages ;
>

function print_arr ( $arr ) echo ‘< pre>‘ . print_r ( $arr , true ) . ‘‘ ;
>
?>

Функция print_r() имеет еще второй параметр, true — применение этого параметра позволяет сразу не выводить, а буферизировать данные.

Вызываем функцию print_arr($arr) в индексном файле:

Файл index.php

.
.
.
$messages = get_mess ();
$messages = array_mess ( $messages );
print_arr ( $messages );
.
.
.
?>
После обновления страницы получаем:
Array
(
[0] => Андрей|Привет!
Это первое сообщение|2019-05-03 22:51:24
[1] => Вася|Привет!
Это второе сообщение|2019-05-03 22:51:54
[2] => Петя|)))))|2019-05-03 22:52:12
[3] => —————————— пустой элемент массива
)

Удаление последнего элемента массива

Чтобы удалить последний ненужный элемент массива воспользуемся функцией array_pop()

— данная функция возвращает последний элемент массива и удаляет его сразу же из массива.

Файл funcs.php

— файл funcs.php — функции array_mess() —

.
.
.
function array_mess ( $messages ) $messages = explode ( «\n***\n» , $messages );
array_pop ( $messages ); // убираем последний элемент массива
return $messages ;
>
.
.
.
?>

После обновления страницы последний (пустой) элемент массива будет удален.

Сортировка сообщений в обратном порядке

С помощью функции array_reverse() переворачиваем массив:

Файл funcs.php

— файл funcs.php — функции array_mess() —

.
.
.
function array_mess ( $messages ) $messages = explode ( «\n***\n» , $messages );
array_pop ( $messages ); // убираем последний элемент массива
return array_reverse ( $messages ); // переварачиваем массив
>
.
.
.
?>
выведет:
Array
(
[0] => Петя|)))))|2019-05-03 22:56:36
[1] => Вася|Привет!
Это второе сообщение|2019-05-03 22:56:24
[2] => Андрей|Привет!
Это первое сообщение|2019-05-03 22:56:00
)

Вывод сообщений

Проходим по массиву $messages в цикле и выводим наши сообшения.

В индексном файле проверяем:
если у нас не пусто if(!empty) переменная $messages (массив сообщений), тогда мы
будем выводить эти сообщения. Для этого запускаем цикл foreach , проходимся по $messages ,
берем каждое сообщение в переменную $message и выводим то, что там находится.

А там находиться, например, строка: Петя|)))))|2019-05-04 22:55:33 — — в получаемых строках есть также разделители — » | «, соответственно эти строки мы можем также разбить в массив, в котором будет три элемента: имя, текст сообщения и дата .
В тегах div класса «messages» заключим каждое конкретное сообщение.

Напишем еще одну пользовательскую функцию: get_format_message() в файле funcs.php, которая будет разбивать cтроку по разделителю » | «.

В переменную $message (index.php) мы вернем результат работы функции get_format_message() , в качестве параметра она принимает $message . Можно было бы вызвать функцию explode() , но функция get_format_message() может в дальнейшем разрастись и было бы правильно чтобы она была вынесена.

Выводим полученные наши данные используя короткую запись : — это тоже самое, что и :

— — Автор
— — Дата
— — сообщение ( nl2br — для многострочного текста)
— htmlspecialchars — экранируем тэги

Файл funcs.php

— файл funcs.php — функции get_format_message() и print_arr() —

.
.
.
function get_format_message ( $message ) return explode ( ‘|’ , $message );
>
function print_arr ( $arr ) echo ‘< pre>‘ . print_r ( $arr , true ) . ‘‘ ;
>
?>

Как изменить сообщение в гостевой книге php

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Помог: 3 раз(а)

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

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Цитата:

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *