Библиотека knigago >> Компьютеры и Интернет >> Базы данных >> PHP. Разработка модуля комментариев для сайта


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 2213, книга: Срок годности
автор: Ян Шайн

Прочитав книгу "Срок годности" Яна Шайна, я погрузилась в необычный и интригующий мир. Эта книга из жанра современной прозы, помеченная тегами "самиздат", "русская литература", "поиски смысла жизни" и "духовные поиски", точно попадает в эти категории. Шайн мастерски создает сложных и глубоко проработанных персонажей, которые оказываются на перепутье жизни. Главный герой, Андрей, борется с экзистенциальным кризисом, пытаясь найти смысл своего...

СЛУЧАЙНАЯ КНИГА

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

PHP. Разработка модуля комментариев для сайта
Книга - PHP. Разработка модуля комментариев для сайта.  Дмитрий Приходько  - прочитать полностью в библиотеке КнигаГо
Название:
PHP. Разработка модуля комментариев для сайта
Дмитрий Приходько

Жанр:

Базы данных, Околокомпьютерная литература

Изадано в серии:

неизвестно

Издательство:

SelfPub

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

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

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


К этой книге применимы такие ключевые слова (теги) как: Самиздат,создание сайтов,веб-программирование,PHP

Читаем онлайн "PHP. Разработка модуля комментариев для сайта". [Страница - 32]

lang="en">

<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 --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.