Бесплатное в сети!
Age-Dragon.com
» » Комментарии для сайта

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

комментарий на сайте

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

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

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

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

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

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

MySQL

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

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

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

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.

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

Теперь перейдём к этому файлу для соединения с нашей базой данных. Откройте его в текстовом редакторе и сделайте следующие изменения:

$db = mysql_connect("localhost","user","12345");

Где "localhost" - в большинстве случаев оставляете как есть, "user" - прописываете свой Логин от базы данных, "12345" - пароль.

В строке:

mysql_select_db("test",$db);

Измените "test" на имя вашей базы данных.

html - код

И последнее, пропишем необходимое на страницу, где будут находиться вывод ваших комментариев. И начнём с самого начала:
1) В самом верху страницы обязательно должен быть прописан код php для связи с базой данных (этот код нужно писать на всех страницах, где будут комментарии, и если на этой странице у вас уже есть соединение с другой базой, то код нужно прописать непосредственно перед кодом для комментарий):

<?php include ('connect.php');?>

2) Между тегами <head> и </head> прописываем этот код стиля для красивого вывода комментариев:

<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 и увидете в теле документа блок для вывода комментариев и за ним форма для добавления комментариев.

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

Ссылка на файл: komentary_na_sait_utf-8.zip
Ссылка на файл: komentary_na_sait_windows-1251.zip

Комментарии 29
Кирилл
17 июля 2018 11:44
Кирилл

Добрый день!
Все сделал, как вы сказали, но не работает форма комментариев и посередине страницы отображается:

Автор: ".$comment['author']."
".$comment['message']."
"; }while($comment = mysql_fetch_array($result)); ?>

Что это может быть?

Читать полностью
17 июля 2018 13:16
Admin

Кирилл,
Здравствуйте!
Наличие кода PHP на странице, говорит о том, что у вас не обрабатываются запросы подобного типа.
Почитайте статью - вывод php на html страницах.

Читать полностью
Вячеслав
17 июля 2018 21:27
Вячеслав

Доброго времени суток
Скрипт хороший но есть вопрос, как сделать так чтобы на сайте могли оставлять комментарии лишь зарегистрированные пользователи?
И желательно чтобы у каждого пользователя был не более одного комментария.
Заранее спасибо.

Читать полностью
18 июля 2018 08:39
Admin

Вячеслав,
Доброе утро!
Для ваших целей необходимо устанавливать скрипт регистрации и авторизации, перейдите по ссылке и почитайте статью, где как раз и рассмотрены подобные примеры.

Читать полностью
Александр
19 июля 2018 10:21
Александр

Здравствуйте!
Я установил скрипт комментариев по вашему примеру и всё работает безупречно, спасибо.
Но есть один вопрос:
как сделать, что бы на каждой странице отображались свои комментарии, потому как они в данном примере отображаются все полностью на каждой странице одинаково?
То есть для каждой странице свои комментарии. Благодарю )))

Читать полностью
19 июля 2018 13:08
Admin

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

Мне пришлось потратить время на дополнения к скрипту, чтобы исправить данный недостаток и сделать вывод комментариев для любых страниц используя один и тот же скрипт. И посмотрев на ДЕМОНСТРАЦИЮ СКРИПТА в работе, я уверен что и вы в этом сами убедились.

Для этой цели необходимо добавить одно поле в таблицу и сделать следующие изменения в файлах index.html и sendMessage.php:

Доступ закрыт

Стоимость доступа ко всей странице 20.00 RUR.
После оплаты доступ будет открыт в течение 3 дн.
Для оплаты Вам необходимо зарегистрироваться либо войти на сайт.

Читать полностью
Наталья
21 июля 2018 14:59
Наталья

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

Это вроде мелочь, но хотелось бы иметь такой же вывод. Напишите пожалуйста, что нужно дополнить для этой цели.
Буду очень благодарна)))

Читать полностью
21 июля 2018 16:37
Admin

Наталья,
Добрый день, Наталья!
Да, вы правы! Время от время я дорабатываю скрипты и стараюсь удалять изъяны и дополнять чем-то полезным. И здесь с датой комментария вроде мелочь, но отображается с помощью ajax уже более интереснее.

Для этого, откройте один шаблонный файл index.html и сделайте дополнения в 4-ёх местах:

Доступ закрыт

Стоимость доступа ко всей странице 20.00 RUR.
После оплаты доступ будет открыт в течение 3 дн.
Для оплаты Вам необходимо зарегистрироваться либо войти на сайт.

Читать полностью
RedWingFM
21 июля 2018 19:18
RedWingFM

Админ, спасибо Вам большое за код. А то я себе все глаза промозолил этим проклятым PHP и его формами.
Ajax - это то, что надо.
P.S. Пока его учить. А то не быть мне продвинутым web-разработчиком.

Читать полностью
Алексей
1 сентября 2018 09:10
Алексей

Всё опробовал, я конечно не спец в этом "Ваше сообшение успешно отправлено".

Только вот теперь не понятно какую ссылку я должен себе на сайт установить чтобы видеть выложенные комментарии?

Читать полностью
1 сентября 2018 09:19
Admin

Алексей,
В статье же написано: html код для вывода комментариев ( пункт 1 и 2 ).
Будьте пожалуйста внимательней.
---
А если они у вас не отображаются или какие другие проблемы, и вы при этом всё сделали по инструкции, так и пишите об этом подробно и конкретно ( свои дейсвтия и результаты ).

Читать полностью
Андрей
13 ноября 2018 16:56
Андрей

Здравствуйте!
В моём случае если писать коммент на english - проблем нет, но вот если на русском, то в базу заносятся пустоты. На экране после <F5> просто строка "Автор: " и всё. Где собака зарыта? Спасибо!

Читать полностью
13 ноября 2018 17:52
Admin

Андрей,
Добрый вечер!
Я думаю, что с кодировкой связана проблема...
Это нужно смотреть и пробовать делать изменения.

Читать полностью
Анна
22 ноября 2018 15:32
Анна

Здравствуйте.
Такая же проблема с русским языком в комментарии для сайта, пустые строки вместо введенных данных.

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

Читать полностью
22 ноября 2018 16:27
Admin

Анна,
Добрый день!
Я поменял достаточно много хостинг-провайдеров, я арендовал виртуальные сервера под свои сайты, и у меня везде чётко все скрипты работают.
Я не вижу как и что вы делаете, и поэтому конкретно выявить у вас ошибку не могу.
Предоставьте мне доступ к вашему сайту, либо через удалённый доступ на ком - и я подправлю и объясню.

Читать полностью
Анна
23 ноября 2018 08:15
Анна

Admin,

после преобразования строки: $message = @iconv("UTF-8", "windows-1251", $_POST['message']);

в просто $message = $_POST['message'];

все заработало

Читать полностью
Вячеслав
19 декабря 2018 23:36
Вячеслав

А удалять скажем "плохие" комментарии Админ может или нет?

Просто люди иногда выражаются не очень красиво...

Читать полностью
20 декабря 2018 10:07
Admin

Вячеслав,
Разумеется, любые комментарии подлежат редактированию и удалению на ваше усмотрение, через Базу Данных.

Читать полностью
Сергей
12 февраля 2019 11:58
Сергей

Подскажите пожалуйста, что не так в phpMyAdmin

Вставляю запрос

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 CHARACTER SET utf8 COLLATE utf8_general_ci;


Говорит, что 4 ошибки.

1. Ожидалось имя символа! (near "'id'" at position 48)
2. Ожидалось объявление, по крайней мере, одного столбца. (near "'id'" at position 48)
3. Неожиданное начало выражения. (near "3" at position 58)
4. Неизвестный оператор. (near "NOT NULL" at position 62)

Помогите понять пожалуйста. Тех. поддержка хоста молчит так как сайт пока делается на бесплатном тарифе, а я с phpMyAdmin толком не работал.

Читать полностью
12 февраля 2019 14:12
Admin

Сергей,
Эти вопросы только к тех.поддержке хостинга ( они знают какая версия MySQL у вас стоит и почему такие проблемы ).
Если тех.поддержка молчит - меняйте хостинг не раздумывая!!! ( не имеет значения какой у вас тариф ).
Поверьте мне наслово лучше, - потом проблем с ними будет куда больше.

Читать полностью
Сергей
12 февраля 2019 16:50
Сергей

Admin, Спасибо, только я на этом хосте уже 7 лет без проблем. Всё-бы уже решили, только на платном тарифе.

А я тут решил замутить новый сайт и сунулся на бесплатный, так как делаю самописку и ещё не знаю что получится. Да и пора начинать вникать в MySQL. На бесплатном нет тех. поддержки.
Так значит форма запроса зависит от версии MySQL? Версия 5.7.21. Значит есть смысл поискать код запроса именно для этой версии?
Мне нравятся ваши материалы. У меня один сайт по этой же тематике. ИКС 140. Планирую пост по выводу php на html, своими словами, с прямой ссылкой на вас. Можно?

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

Читать полностью
12 февраля 2019 18:06
Admin

Сергей,
Я обновил в статье код для создания таблиц SQL.
Попробуйте ещё раз!
Версия у меня такая же, да и вы первый, кто описывает подобную проблему.

---

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

Читать полностью
Сергей
12 февраля 2019 20:59
Сергей

Admin, Наверное будете смеяться, но всё дело оказалось в апострофах. Я ж не сном не духом про левые апострофы не ведал. Всегда ставил прямые. 
У меня в окне SQL почему-то закрыт буфер обмена, ну я и писал вручную, и прямые апострофы. Случайно на букве Ё левую увидел.

Поверить не мог, что дело в этом, пока не сработало.
За Импорт спасибо. Теперь ещё один приём знаю.

Читать полностью
Сергей
14 февраля 2019 20:52
Сергей

Вот тут ваша ссылка. Статьи с кодом самописки - 90% трафика на мой сайт.

И ещё такой вопрос: как сделать чтоб комментарии были привязаны к конкретным страницам?

Создать для каждой страницы свою БД (на моём хосте количество БД не ограничено), или в этой же БД содать отдельную таблицу для каждой страницы, например messages1, но тогда я не нашёл в connect.php привязки к конкретной таблице.
Или это делается как-то по другому?

Читать полностью
15 февраля 2019 00:10
Admin

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

Читать полностью
Сергей
15 февраля 2019 09:39
Сергей

Admin,

Спасибо! Очень интересуюсь и о промашках очень хочу. Регистрируюсь, а вот в скайп только ближе к вечеру - работа. Или в выходные.

У вас как рабочий график?

Читать полностью
15 февраля 2019 11:58
Admin

Сергей,
Ответил вам на E-mail

Читать полностью
cs-kodak
12 марта 2019 17:31
cs-kodak

Admin, Не могли бы вы помочь с внедрением скрипта комментариев на сайт?

Читать полностью
12 марта 2019 22:54
Admin

cs-kodak,
Обращайтесь))

Читать полностью
Добавить комментарий