Оценить:
 Рейтинг: 0

PHP. Разработка модуля комментариев для сайта

Год написания книги
2021
Теги
<< 1 ... 51 52 53 54 55 56 57 58 59 ... 78 >>
На страницу:
55 из 78
Настройки чтения
Размер шрифта
Высота строк
Поля

$comment = str_replace($smiles_keys, $smile_path, $comment); //Меняем в комментарии ключи смайлов на пути к смайлам

echo $comment; //печатаем комментарий со смайлами

}

Получаем из таблицы smiles массивы условных обозначений смайлов и путей к их изображениям. В цикле обрабатываем и выводим на печать комментарии со смайлами.

25. Страница сепарации данных

Страница separate_action.php получает данные из формы formaddsay.html.php и обрабатывает их. Введение этой страницы было необходимо для обнуления $_POST на странице обработки комментариев после их отправки. Если этого не сделать, то при размещении этого кода на странице с контроллером 3 при обычном обновлении страницы возникала бы проблема с его обработкой т.к. браузер обычно запоминает данные, которые отправляются с текущей страницы для того, чтобы отправить их снова при обновлении страницы и:

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

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

Листинг 41. separate_action.php Путь: news/chat/function/ print_comment.php

<?php

if(session_id() == '') {session_start();}

include_once $_SERVER['DOCUMENT_ROOT'].'./chat/admin/clean.php';

/* включаем/выключаем видимость блока смайлов */

if (isset($_POST['smileblock'])) {

$_SESSION['smileblock']      = 'display:block';

}

if (isset($_POST['smileblock_close'])) {

$_SESSION['smileblock']      = 'display:none';

}

/* Комментарии */

//если была нажата кнопка "Добавить" вставляем форму добавления комментариев,

//если была нажата кнопка "Ответить" вставляем форму ответа на комментарии,

if (isset($_POST['action']) and $_POST['action'] == 'Добавить') {

include_once $_SERVER['DOCUMENT_ROOT'].'/chat/say/makeformaddsay.php';

}

elseif (isset($_POST['action']) and $_POST['action'] == 'Ответить') {

include_once $_SERVER['DOCUMENT_ROOT'].'/chat/say/make_reply.php';

}

else {//Проверяем куда пойдет смайл в комментарии или в ответы

include_once $_SERVER['DOCUMENT_ROOT'].'/chat/say/smile_make.php';

}

Скрипт управляет отображением/скрытием блока смайлов, вставкой формы добавления комментариев и вставкой формы добавления ответов на комментарии.

26. Форма для вывода комментариев

Форма form_say.html.php служит для вывода комментариев

Листинг 42. form_say.html.php Путь: news/chat/say/ form_say.html.php

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<link rel="stylesheet" type="text/css" href="/chat/style.css" />

</head>

<div class="wrapsayform" style="<?= $display_say ?>">

<?php

include $_SERVER['DOCUMENT_ROOT'] . '/chat/say/list_reply.php';

if (!empty($say)) {

foreach ($say as $saylist) : ?>

<div class="sayform" id="">

<!– Выводим логин и дату –>

<div class="topprintcomment" id="">

<b><?php echo $saylist['login']; ?></b>
<< 1 ... 51 52 53 54 55 56 57 58 59 ... 78 >>
На страницу:
55 из 78