Содержание страницы
домикГлавная / Скрипты java и php / Комментарии для сайта
комментарий на сайтеВашему вниманию предлагаю довольно простой скрипт на основе Ajax с поддержкой базы данных MySQL - комментарии для сайта. Скрипт "Комментарии для сайта" работает на всех современных браузерах, а так же на php и html страницах с незначительными отличиями.

На php страницах комментарии добавляются сразу без перезагрузки, а в html только после обновления страницы, что особо не является недостатком. Не забудьте учесть тот факт - если вы используете html, то ваш хостинг обязательно должен поддерживать язык программирования php и вы обязаны знать как вывести php на html страницы.

Пример вывода комментариев на сайте

Этот скрипт "Комментарии для сайта" хорошо защищён от пагубного воздействия на базу данных ( есть такие "умники" ), т.е. любые html-коды ( ссылки, скрипты различные, вирусы и т.д.) преобразуются для MySQL в сущности, а при выводе на страницу - наоборот, всё то, что написал пользователь. Для установки скрипта особых навыков не потребуется.

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

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

MySQL

Начнём с базы данных: в своей Базе Данных MySQL создаём новую базу с логином от неё и паролем ( обязательно записываем эти данные ). Затем в созданной базе делаем таблицу.

Подробнее: у себя на хостинге заходим в php MyAdmin и нажимаем на созданную базу, она у нас пока пустая ( без таблиц ). После вверху жмём на SQL и в текстовое поле вставляем следующий код и нажимаете на OK.

Код для создания таблиц SQL

Для кодировки Windows-1251

SQLCOPY
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=cp1251;

Для кодировки UTF-8

SQLCOPY
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;
Где `имя_базы_данных` - прописываете свою базу, а `messages` - это название текущей таблицы.

connect.php

Теперь перейдём к этому файлу для соединения с нашей базой данных. Откройте его в текстовом редакторе и сделайте следующие изменения:
phpCOPY
$db = mysql_connect("localhost","user","12345");
Где "localhost" - в большинстве случаев оставляете как есть, "user" - прописываете свой Логин от базы данных, "12345" - пароль.

В строке:
phpCOPY
mysql_select_db("test",$db);
Измените "test" на имя вашей базы данных.

html - код

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

1) В самом верху страницы обязательно должен быть прописан код php для связи с базой данных (этот код нужно писать на всех страницах, где будут комментарии, и если на этой странице у вас уже есть соединение с другой базой, то код нужно прописать непосредственно перед кодом для комментарий):
phpCOPY
<?php include ('connect.php');?>
2) Между тегами <head> и </head> прописываем этот код стиля для красивого вывода комментариев:
cssCOPY
<style type="text/css"> .comment{ border: 1px solid #666; margin: 10px; padding: 10px; font-family: Tahoma; font-size: 12px; border-radius: 4px; box-shadow: 2px 2px 2px #999; } </style>
Ну, а в остальном вы разберётесь без особого труда, - откройте через текстовый редактор файл index.html и увидете в теле документа блок для вывода комментариев и за ним форма для добавления комментариев.

стрелка вниз Скачать скрипт Комментарии на сайте

Комментарии
Кирилл
17 июля 2018 11:44
Кирилл
Добрый день!
Все сделал, как вы сказали, но не работает форма комментариев
посередине страницы отображается:
phpCOPY
Автор: ".$comment['author']." ".$comment['message']." "; }while($comment = mysql_fetch_array($result)); ?>
Что это может быть?
Admin
17 июля 2018 13:16
Admin
Здравствуйте!
Наличие кода PHP на странице, говорит о том, что у вас не обрабатываются запросы подобного типа.
Почитайте статью - вывод php на html страницах.
Вячеслав
17 июля 2018 21:27
Вячеслав
Доброго времени суток
Скрипт хороший но есть вопрос, как сделать так чтобы на сайте могли оставлять комментарии лишь зарегистрированные пользователи?
И желательно чтобы у каждого пользователя был не более одного комментария.
Заранее спасибо.
Admin
18 июля 2018 08:39
Admin
Доброе утро!
Для ваших целей необходимо устанавливать скрипт регистрации и авторизации, перейдите по ссылке и почитайте статью, где как раз и рассмотрены подобные примеры.
Андрей
13 ноября 2018 16:56
Андрей
Здравствуйте!
В моём случае если писать коммент на english - проблем нет, но вот если на русском, то в базу заносятся пустоты. На экране после просто строка "Автор: " и всё.
Где собака зарыта? Спасибо!
Admin
13 ноября 2018 17:52
Admin
Добрый вечер!
Я думаю, что с кодировкой связана проблема ...
Это нужно смотреть и пробовать делать изменения.
Анна
22 ноября 2018 15:32
Анна
Здравствуйте.
Такая же проблема с русским языком в комментарии для сайта, пустые строки вместо введенных данных.

Все возможные варианты кодировок перебраны, совсем нет идей, что делать, а скрипт очень нравится, очень аккруратный и небольшой...
Admin
22 ноября 2018 16:27
Admin
Добрый день!
Я поменял достаточно много хостинг-провайдеров, я арендовал виртуальные сервера под свои сайты, и у меня везде чётко все скрипты работают.
Я не вижу как и что вы делаете, и поэтому конкретно выявить у вас ошибку не могу.

Предоставьте мне доступ к вашему сайту, либо через удалённый доступ на ком - и я подправлю и объясню.
Анна
23 ноября 2018 08:15
Анна
Спасибо!
Оказывается мой хостинг не обробатывал эту запись:
$message = @iconv("UTF-8", "windows-1251", $_POST['message']);

Стоило заменить на эту:
$message = $_POST['message'];

как всё заработало должным образом.
Вячеслав
19 декабря 2018 23:36
Вячеслав
А удалять скажем плохие комментарии Админ может или нет?
Просто люди иногда выражаются не очень красиво...
Admin
20 декабря 2018 10:07
Admin
Разумеется, любые комментарии подлежат редактированию и удалению на ваше усмотрение, через Базу Данных.
Александр
13 февраля 2019 14:44
Александр
Здравствуйте!
Я установил скрипт комментариев по вашему примеру и всё работает безупречно, спасибо.

Но есть один вопрос:
как сделать, что бы на каждой странице отображались свои комментарии, потому как они в данном примере отображаются все полностью на каждой странице одинаково?
То есть для каждой странице свои комментарии. Благодарю )))
Admin
13 февраля 2019 19:38
Admin
К сожалению, в оригинальной версии не предусмотрен вывод комментариев для последующих ( всех ) страниц на сайте, то есть, чтобы для каждой страницы были свои комментарии.
Это уже мои доработки :)))
Для этой цели необходимо добавить одно поле в таблицу и сделать следующие изменения в файлах index.html и sendMessage.php:

1 ШАГ. Переходим в Базу Данных TEST, открываем нашу таблицу MESSAGES, нажимаем на СТРУКТУРА ( верхнее меню ), и потом нажимаем добавить 1 поле.
Теперь задаём имя этому полю stranica, присваиваем тип text, сравнение указываем вашу кодировку, и нажимаем ОК.

2 ШАГ. Скачайте файлы index.html и sendMessage.php, и после замените на имеющиеся у вас.

Ссылка на файл: скачать файлы UTF-8
Ссылка на файл: скачать файлы Windows-1251

ВНИМАТЕЛЬНО!
Скачивайте файлы только с той кодировкой, которую вы используете в скрипте комментариев, иначе будут проблемы с отображением русских слов.

Читать полностью

Наталья
4 марта 2019 11:02
Наталья
Доброго времени суток!
Я так понимаю вы доработали скрипт комментариев и по дате, то есть в шаблоне скрипта при добавление комментария, он отображается сразу на странице, но без даты. А у вас комментарий отображается сразу с датой.

Это вроде мелочь, но хотелось бы иметь такой же вывод. Напишите пожалуйста, что нужно дополнить для этой цели.
Буду очень благодарна)))
Admin
4 марта 2019 17:13
Admin
Добрый день, Наталья!
Да, вы правы! Время от время я дорабатываю скрипты и стараюсь удалять изъяны и дополнять чем-то полезным. И здесь с датой комментария вроде мелочь, но отображается с помощью ajax уже более интереснее.

Для этого нужно сделать дополнения в 4-ёх местах в файле index.html или лучше скачайте готовый вариант и замените на имеющийся у вас:

Ссылка на файл: скачать файл для UTF-8
Ссылка на файл: скачать файл для Windows-1251
Георгий
30 марта 2019 14:17
Георгий
Сменил кодировку всех файлов на UTF-8 без BOM, - комментарии отправляются, кириллица в комментариях отображается корректно, но на всем сайте вместо кириллицы "крокозябры".
А если ставлю UTF-8 c ВОМ, кириллица на сайте корректная, но комментарии не отправляются.
Admin
30 марта 2019 14:42
Admin
Но здесь же всё очевидно у вас!
Везде проставлять кодировку UTF-8 без BOM, а то что у вас на странице при этом крокозябры отображаются - так и пляшите от этого. Меняйте везде на указанную кодировку.

Если бы вы внимательно читали комментарии, и дотошно посмотрели страницу "как делать кодировку", где по-русски сказано,
что помимо того, что вы указываете на странице charset="utf-8", у вас и сама страница должна быть в такой же кодировке.
Вот тогда этих и подобных проблем связанных с невнимательностью было куда гораздо меньше.

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

Читать полностью

Добавить комментарий
Комментарий не отправлен!
Комментарий успешно отправлен!
После модерации он будет опубликован!
Имя - только русские буквы!
Это обязательное поле!