Дмитрий Приходько - PHP. Разработка модуля комментариев для сайта
Название: | PHP. Разработка модуля комментариев для сайта | |
Автор: | Дмитрий Приходько | |
Жанр: | Базы данных, Околокомпьютерная литература | |
Изадано в серии: | неизвестно | |
Издательство: | SelfPub | |
Год издания: | 2022 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "PHP. Разработка модуля комментариев для сайта"
В книге рассмотрен вариант разработки модуля комментариев для сайта на чистом языке php в процедурном стиле.
К этой книге применимы такие ключевые слова (теги) как: Самиздат,создание сайтов,веб-программирование,PHP
Читаем онлайн "PHP. Разработка модуля комментариев для сайта". [Страница - 32]
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="/chat/style.css" />
</style>
</head>
<form action="/chat//say/separate_action.php" method="post" class="say">
<fieldset class="chatfieldset">
<legend>Ответить на комментарий:</legend>
<textarea class="saytext" name="replytext" rows="5" cols="50" autofocus><?php if(isset($_SESSION['txt'])){
echo htmlout($_SESSION['txt']);}?></textarea>
<br />
<div class="">
<div class="says">
<input type="hidden" name="userid" value="Добавить">
<input type="hidden" name="pageid" value="<?php echo $pageid ?>">
<input type="hidden" name="sayid" value="<?php if(isset($sayid)) {echo $sayid;} ?>">
<input type="hidden" name="deleteid" id="" value=" <?php echo $saylist['id'];?>" />
<input type="hidden" name="postid" id="" value=" <?php htmlout($post_id);?>" />
<input type="submit" name="action" value="Ответить">
<input type="submit" name="smileblock" value="Показать смайлы">
<input type="submit" name="smileblock_close" value="Скрыть смайлы">
</div>
<div class="notaddsay" id=""><a href="?" class="notaddsays">Отмена</a></div>
</div>
</fieldset>
<br>
<hr>
<div class="smilesetdiv">
<fieldset class="smileset" style="<?php if (isset($_SESSION['smileblock'])) {echo $_SESSION['smileblock'];} ?>">
<?php print_smile_set();?>
</fieldset>
</div>
<br />
</form>
</html>
Это HTML форма состоящая из следующих частей:
• Поле ввода комментариев тип textarea,autofocus.
• Кнопки «Добавить», «Показать смайлы», «Скрыть смайлы» тип input submit.
• Ссылка «Отмена», при нажатии обнуляет все значения в $_GET.
• Блок смайлов, который выводит доступный набор смайлов.
36. Обработчик добавления ответов
Для обработки ответов на комментарии служит файл make_reply.php
Листинг 52. make_reply.php Путь: news/chat/say/ make_reply.php
<?php
error_reporting(E_ALL);
if (session_id() == '') {
session_start();
}
unset($_SESSION['txt']);
if (isset($_POST['nosay'])) {
$_GET['reply'] = '';
exit();
}
/* Проверяем наличие текста в форме */
if (empty($_POST['replytext'])) {
header("Location: " . $_SERVER["HTTP_REFERER"]); // Делаем редирект
exit();
}
if (isset($_POST['action']) and $_POST['action'] == "Ответить") {
include_once $_SERVER['DOCUMENT_ROOT'] . '/chat/dsn.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/clean.php';
/* Получаем id текущего пользователя */
if (isset($_SESSION['userid'])) {
$userid = $_SESSION['userid'];
}
/* заносим текст в базу */
try {
$sql = 'INSERT INTO reply SET
replytext = :replytext,
userid = :userid,
replydate = :replydate,
replyid =:replyid';
$s = $dsn->prepare($sql);
$replytext = html($_POST['replytext']);
$replyid = $_POST['postid'];
$replydate = time();
$s->bindValue(':replytext', $replytext);
$s->bindValue(':replyid', $replyid);
$s->bindValue(':replydate', $replydate);
$s->bindValue(':userid', $userid);
$s->execute();
} catch (PDOException $e) {
echo 'Error adding данного пользователя';
echo $e->getMessage();
echo $e->getLine();
exit();
}
header("Location: " . $_SERVER["HTTP_REFERER"]); // Делаем редирект
exit();
}
header("Location: " . $_SERVER["HTTP_REFERER"]); // Делаем редирект
exit();
Здесь мы проверяем данные переданные формой form_add_reply.html.php, вставляем данные в БД и делаем редирект обратно.
37. Кнопка удаления ответов на комментарии
Для вывода кнопки удаления ответов на комментарии служит файл reply_delete_button.htmlЛистинг 53. reply_delete_button.html Путь: news/chat/say/ reply_delete_button.html
<!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="wrapreplyform">
<div class="idreplynum">
<!– печатаем id комментария –>
<span style=""><?php
echo '#'.$saylist['id'].' '.'^'.$replylist['id'];?></span>
</div>
<!– печатаем кнопку удалить –>
<div class="reply_delete_button">
<form name="sayform" method="post" action="/chat/say/reply_delete.php" class="reply_delete_button">
<input type="hidden" name="pageid" id="" value=" <?php echo $pageid;?>" />
<input type="hidden" name="deleteid" id="" value=" <?php echo $replylist['id'];?>" />
<input type="<?= $buttonactive ?>" name="reply_delete" id="" value="Удалить" />
</form>
</div>
<?php if($buttonactive =='hidden'){echo '.';} ?>
<!– печатаем точку и не даем схлопнуться div –>
</div>
Здесь выводим на печать идентификаторы ответа: номер комментария и номер ответа, и кнопку «Удалить».
38. Удаление комментариев
Для удаления служит скрипт reset.php
Листинг 54. reset.php Путь: news/chat/say/ reset.php
<?php
if (isset($_POST['delete']) and $_POST['delete'] == 'Удалить') {
include $_SERVER['DOCUMENT_ROOT'] . '/chat/dsn.php';
try {
$sql = 'DELETE FROM say WHERE id = :id';
$s = $dsn->prepare($sql);
$saylist = $_POST['deleteid'];
$s->bindValue(':id', $saylist);
$s->execute();
} catch (pdoException $e) {
echo $e->getMessage();
echo $e->getLine();
exit();
}
}
header("Location:" . $_SERVER['HTTP_REFERER']);// Делаем редирект обратно
Удаляется запись из таблицы say c номером, совпадающим с номером комментария.
39. Удаление ответов на комментарии
Для удаления ответов на комментарии служит файл reply_delete.php
Листинг 55. reply_delete.php Путь: news/chat/say/ reply_delete.php
<?php
if (isset($_POST['reply_delete']) and $_POST['reply_delete'] == 'Удалить') {
include $_SERVER['DOCUMENT_ROOT'] . '/chat/dsn.php';
try {
$sql = 'DELETE FROM reply WHERE id = :id';
$s = $dsn->prepare($sql);
$del --">Книги схожие с «PHP. Разработка модуля комментариев для сайта» по жанру, серии, автору или названию:
Нил Форд, Майкл Хайгард, Билл де Ора - 97 этюдов для архитекторов программных систем Жанр: Базы данных Год издания: 2010 Серия: Профессионально |
Инна Лёвина - Ловушка для наёмника (СИ) Жанр: Фэнтези: прочее Год издания: 2014 |
Дарья Андреевна Кузнецова - Симфония для пяти струн (СИ) Жанр: Детективная фантастика Год издания: 2015 |