Комментарии от пользователей php

Комментарии для сайта

Готовый код скрипта комментариев с пошаговой инструкцией, где его разместить, как осуществить связь с MySQL, и что и куда залить и подключить, чтоб всё заработало.

Я покажу вам готовый код скрипта и расскажу пошагово где его разместить, как осуществить связь с MySQL, и что и куда залить и подключить, чтоб всё заработало.

Сразу уточню, что весь представленный здесь код преобразуется в файлы в Notepad++ с соответствующим расширением и в кодировке utf8

< script type color: #008080;">text/javascript «>
$( function () $( «#send» ). click ( function () var author = $( «#author» ).val();
var message = $( «#message» ).val();
var stranica = $( «#stranica» ).val();
$.ajax( type: «POST» ,
url: «sendMessage.php» ,
data: < "author" : author, "message" : message, "stranica" : stranica>,
cache: false,
success: function (response) var messageResp = new Array();
var resultStat = messageResp[Number(response)];
if(response == 0) $( «#author» ).val( «» );
$( «#message» ).val( «» );
$( «#commentBlock» ).append( «

» +author+ «
» +message+ «

» );
>$( «#resp» ).text(resultStat).show().delay(1500).fadeOut(800);>>);return false;>);>);
< /script >

Разместить этот скрипт на странице можно двумя способами.

1. Скрипт размещается непосредственно на странице между тегами

2. В корневой директории сайта создаётся папка c названием, например js, если таковой ещё нет, и в неё помещается файл скрипта под названием, допустим script_comments.js

Тогда на странице, в тег прописывается подключение этого файла к странице.

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

Следующим шагом размещаем на странице код вывода комментариев и код формы комментариев.

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

< div id color: #008080;">commentBlock «>
$result = mysql_query ( «SELECT * FROM messages WHERE stranica=’ $_SERVER [PHP_SELF]'» ,$db);
$comment = mysql_fetch_array ($result);
do< echo "

» .$comment[ ‘author’ ]. «

» .$comment[ ‘date’ ]. «

» .$comment[ ‘message’ ]. «

» ;
>while($comment = mysql_fetch_array ($result));
?>
< /div >
< form action color: #008080;">sendMessage.php » method color: #008080;»>post » name color: #008080;»>form «>
< p >Автор: < br >< input name color: #008080;">author » type color: #008080;»>text » id color: #008080;»>author «>

< p >>Напишите ваш отзыв:< br >< textarea name color: #008080;">message » style color: #008080;»>width:80%; min-height:200px; » id color: #008080;»>message «>< /textarea >< /p >>
< input name color: #008080;">stranica » type color: #008080;»>hidden » value =»»» id color: #008080;»>stranica «>
< input name color: #008080;">js » type color: #008080;»>hidden » value color: #008080;»>no » id color: #008080;»>js «>

< input name color: #008080;">button » type color: #008080;»>submit » value color: #008080;»>Отправить » id color: #008080;»>send «> resp «>

< /form&gt ;

Так, с клиентской частью закончили, теперь пойдём на сервер.

Первым делом нужно скачать маленькую библиотеку jquery-1.5.1.min.js. (82kb)

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

Читайте также:  Parsing json response in java

Затем этот файл загружаем на сервер в папку js, которую мы создали на предыдущем шаге, и подключаем этот файл к странице, на которой будут выводится комментарии в тег .

У нас там уже есть один подключенный скрипт, рядом с ним прописываем ещё один.

Затем в директорию в которой находится файл страницы с комментариями, нужно загрузить файл с командами для БД.

header ( «Content-type: text/html; charset=UTF-8» );
if ( empty ($_POST[ ‘js’ ])) if ($_POST[ ‘message’ ] != » && $_POST[ ‘author’ ] != ») $author = @ iconv ( «UTF-8» , «UTF-8» , $_POST[ ‘author’ ]);
$author = addslashes ($author);
$author = htmlspecialchars ($author);
$author = stripslashes ($author);
$author = mysql_real_escape_string ($author);

$message = @ iconv («UTF-8», «UTF-8», $_POST[ ‘message’ ]);
$message = addslashes ($message);
$message = htmlspecialchars ($message);
$message = stripslashes ($message);
$message = mysql_real_escape_string ($message);

$stranica = @ iconv («UTF-8», «UTF-8», $_POST[ ‘stranica’ ]);
$stranica = addslashes ($stranica);
$stranica = htmlspecialchars ($stranica);
$stranica = stripslashes ($stranica);
$stranica = mysql_real_escape_string ($stranica);

$result = mysql_query ( «INSERT INTO messages (author, message, stranica, date) VALUES (‘$author’, ‘$message’, ‘$stranica’, ‘$date’)» );
if ($result == true) > else
> else >

if ($_POST[ ‘js’ ] == ‘no’ ) if ($_POST[ ‘message’ ] != » && $_POST[ ‘author’ ] != »)

$author = $_POST[ ‘author’ ];
$author = addslashes ($author);
$author = htmlspecialchars ($author);
$author = stripslashes ($author);
$author = mysql_real_escape_string ($author);

$message = $_POST[ ‘message’ ];
$message = addslashes ($message);
$message = htmlspecialchars ($message);
$message = stripslashes ($message);
$message = mysql_real_escape_string ($message);

$stranica = $_POST[ ‘stranica’ ];
$stranica = addslashes ($stranica);
$stranica = htmlspecialchars ($stranica);
$stranica = stripslashes ($stranica);
$stranica = mysql_real_escape_string ($stranica);

$result = mysql_query ( «INSERT INTO messages (author, message, stranica, date) VALUES (‘$author’, ‘$message’, ‘$stranica’, ‘$date’)» );
if ($result == true) > else
> else >
?>

Следующий файл в ту же директорию — файл связи с базой данных connect.php

$db = mysql_connect ( «localhost» , «name_BD» , «3Pt3yeRg» );
mysql_select_db ( «name_BD» ,$db);
mysql_query ( «SET NAMES utf8» );
?>

И последнее, что нам осталось сделать — это соединить нашу страницу, на которой будут выводится комментарии, с БД.

Для этого в самом верху страницы, перед !DOCTYPE html, вставляем следующий код

Теперь идём в БД MySQL. если у вас ещё нет БД, то её нужно создать.

На разных хостингах это делается по разному, поэтому я не буду подробно объяснять как это делается, а как создать БД на Денвере, можно прочитать здесь.

Когда база данных создана, заходим в phpMyAdmin, там должна быть строчка с именем вашей БД, и всё. Нам необходимо создать в ней таблицу.

Проходим во вкладку SQL — верхнее меню.

И в открывшемся окне пишем следующий запрос

CREATE TABLE `messages` (
`id` int(3) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`author` varchar(30) NOT NULL,
`message` text NOT NULL,
`date` varchar(25) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Обратите внимание на левые апострофы, на клавиатуре на букве Ё.

Нажимаем Вперёд — всё таблица создана.

Блин, забыл привязку к конкретной странице. Переходим в таблицу во вкладку Структура, и добавляем одно поле с названием stranisa

Читайте также:  Php throw new exception array

Ну вот и всё, можно идти на свою страницу и тестировать комментарии.

Со стилевым оформлением, я надеюсь, вы справитесь самостоятельно.

После тестирования заходим снова в БД, в phpMyAdmin, в нашу созданную таблицу — все комментарии здесь

Нажимаем Отметить все и Изменить, вам откроются все отправленные комментарии, с указанием страниц, с которых они были отправлены.

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

На этом всё. Вы можете изменить имена файлов и таблиц, но тогда внимательно просмотрите весь представленный код, и замените имена везде, где они фигурируют.

Использованы материалы сайта age-dragon.com

Источник

Как сделать комментирование на сайте

Как сделать комментирование на сайте

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

Мы сейчас будем разбирать PHP-код для создания комментирования на сайте, где имеется множество страниц, на каждой из которых свои комментарии. Например, таким образом, реализовано у меня. Это самый популярный вариант, когда у каждой страницы (статьи, поста и прочего) свой набор комментариев.

Первым делом, создаём таблицу в базе данных (пусть она называется comments), где будут храниться комментарии со следующими полями:

  • id — уникальный идентификатор.
  • page_id — хранится идентификатор той страницы, на которой находится данный комментарий.
  • name — имя того, кто оставил комментарий.
  • text_comment — текст комментария.

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

Единственная особенность данного HTML-кода — это input hidden. В value должен находиться уникальный идентификатор текущей страницы (статьи или поста).

Теперь займёмся обработкой формы. Для этого создаём файл comment.php с таким кодом:

/* Принимаем данные из формы */
$name = $_POST[«name»];
$page_id = $_POST[«page_id»];
$text_comment = $_POST[«text_comment»];
$name = htmlspecialchars($name);// Преобразуем спецсимволы в HTML-сущности
$text_comment = htmlspecialchars($text_comment);// Преобразуем спецсимволы в HTML-сущности
$mysqli = new mysqli(«localhost», «root», «», «db»);// Подключается к базе данных
$mysqli->query(«INSERT INTO `comments` (`name`, `page_id`, `text_comment`) VALUES (‘$name’, ‘$page_id’, ‘$text_comment’)»);// Добавляем комментарий в таблицу
header(«Location: «.$_SERVER[«HTTP_REFERER»]);// Делаем реридект обратно
?>

И, наконец, последняя стадия — это вывод комментариев на странице:

$page_id = 150;// Уникальный идентификатор страницы (статьи или поста)
$mysqli = new mysqli(«localhost», «root», «», «db»);// Подключается к базе данных
$result_set = $mysqli->query(«SELECT * FROM `comments` WHERE `page_id`=’$page_id'»); //Вытаскиваем все комментарии для данной страницы
while ($row = $result_set->fetch_assoc()) print_r($row); //Вывод комментариев
echo «
«;
>
?>

Вот и всё. Безусловно, это лишь база, необходимая для создания возможности комментирования на сайте. Здесь самое минимальное, что придётся сделать — это оформить внешний вид комментариев. Также надо обязательно проверить поступившие данные из формы. Также можно добавить дополнительные поля (например, e-mail ещё запрашивать).

Но всё это уже детали, а комментирование на PHP уже сделано.

Читайте также:  Javascript получить все дочерние элементы

Чтобы понять весь алгоритм и, главное, научиться самостоятельно создавать подобные скрипты, обязательно изучите PHP и MySQL, и в этом Вам поможет мой Видеокурс «PHP и MySQL с Нуля до Гуру«: http://srs.myrusakov.ru/php

Создано 01.02.2012 14:47:38

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

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

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 159 ):

    не понял с пунктом «вывод комментариев на странице» это создаётся ещё один php файл?? или все в одном? и ещё один вопрос, создал форму, как у вас и пхп файл, как нажимаю в форме кнопку отправить пишет вот такое: query(«INSERT INTO `comments` (`name`, `page_id`, `text_comment`) VALUES (‘$name’, ‘$page_id’, ‘$text_comment’)»);// Добавляем комментарий в таблицу header(«Location: «.$_SERVER[«HTTP_REFERER»]);// Делаем реридект обратно ?>

    Вы либо невнимательно читаете, либо Вам ещё просто рано про это вообще читать. Вы основы точно знаете? Теперь по вопросам: 1. Вывод комментариев на той же странице, где форма. 2. Как он может такое писать? Только если, конечно, Вы не открываете через file:///Z:\home. Если так, то забудьте про эту статью. С такой проблемой новички сталкиваются в первый день обучения PHP.

    Евгений вы для начала разберите алгоритм создания комментариев. Всё создаётся на одной или двух страницах. Допустим если на двух то: text.php //это файл для формы и вивода комментов update_comment.php //это фаил обработчик Вот и всё!

    сорри поспешил, ушел дальше разбираться

    Спасибо Михаил всё это знал только вот не знал как id страницы отправить спасибо!!

    Салам! Михайил У меня вывод комментариев на странице не выходить. В базе MySQL данные есть но на странице нету!

    Тысяча причин, все перечислить невозможно. Могу лишь назвать парочку: по-другому названы поля в таблице, соответственно, неверный запрос. Либо ещё файл не обрабатывает PHP вообще, либо он имеет расширение html, либо запускается неправильно (допустим, просто открывается через двойной клик в браузере).

    Михаил, а идентификатор страницы, обычная строка или с Auto_increment

    Это уникальный номер страницы (число). А какой он, неважно, главное, чтобы число и уникальный.

    Источник

    Оцените статью