Комментарии на PHP, Ajax, mySQL
Представляю вашему вниманию скрипт комментарием на PHP с использованием Ajax, jQuery (отправка комментариев без перезагрузки страницы), для хранение комментариев используется база данных mySQL. Данный скрипт подойдет для большинства сайтов работающих на самописном движке или на любом другом: Joomla, WordPress и т.д.
Возможности скрипта:
- Отправка комментарием без перезагрузки страницы, Ajax, jQuery
- Встроенный WISIWIG редактор TinyMCE, с поддержкой смайликов QIP
- Бесконечное число вложенных-комментариев (ответов)
- Администрирование комментариев)
- Простоя установка за 5 минут
- Использование в качестве аватаров пользователей Gravatar (www.Gravatar.com)
- Скрипт полностью бесплатный. (Но при этом желательно на любой странице своего сайта выразить свое спасибо в виде ссылки на автора www.rche.ru)
Установка скрипта
1. Создайте таблицы в БД импортировав в неё install.sql (лежит в архиве со скриптом)
2. Настройте подключение к БД в файле config.php
3. Вставьте на страницу где будут выводится комментарии, в самое её начало: (Внимание! иклуд должен быть в самом начале кода страницу, перед ним не должно ничего выводиться в браузер, это важно)
<?php include("config.php"); |
4. Вставьте в то место страницы где требуется выводить комментарии, следуюущий код:
<?php $comments->outComments(); ?> |
Для администрирования коммантариев добавте в URL адрес, переменнуй pass=12345 (пароль задается в config.php)
Примеры:
http://example.com/comments.php?pass=12345 http://example.com/components/articles/?pass=12345 http://example.com/?pass=12345 |
Настройки
На самом деле настроек очень много, скрипт можно подключить к сайту таким образом, что скрипт будет определять зарегестирован ли пользователь на сайте и его авторизацию, при этом комментировать можно будет без ввода имени и эл. почты. Данные будут браться из БД (из пользовательской таблицы движка).
Но в данном топике эту возможность я описывать не будут т.к. подключение к каждому движку будет иметь свои особенности.
Базовые настройки производятся в файле config.php
$AdminPass = '12345'; //Пароль администратора $settings = array( 'dbName' => 'db', 'dbUser' => '', 'dbPass' => '', 'dbHost' => 'localhost' ); // Настройки БД |
Обратите внимания на строку
$comments->gravatar=true; // включение GRAVATAR |
По умолчанию включены аватарки от gravatar.com, для их отключения установите значение данной настройки в false.
Надеюсь данный скрипт комментариев пригодиться вам и будет служить верой и правдой. По всем вопросам прошу отписываться в комментариях.
UPD1: Для работы с кодировкой Windows-1251, нужно открыть файлы class.comments.php, js/rcheComment.js в Notepad++ и сохранить их с кодировкой Windows-1251. Затем в файл comments.c.php, после 291 строчки(на момент скачивания вами скрипта эта строка может измениться — доработки и прочее, сами понимаете:)), в общем вставляем после
function saveComments() {
$name = trim(strip_tags($_POST['nameComment']));
$email = trim($_POST['emailComment']);
$text = PHP_slashes(htmlspecialchars(markhtml(trim(rawurldecode($_POST['textComment'])))));
), вставить этот код:
В файле class.dbsql.php в строке 129 заменить UTF8 на cp1251
А также таблицам в БД (`rche_comments`, `rche_users`) и их полям присвоить кодировку cp1251_general_ci
UPD2: Реализована система антиспам, антибот и капча с выводом изображения с проверочным кодом. Теперь кол-во спама будет сильно ограничено.
UPD3:
1. Если у вас не работает капча проверьте наличие PHP модуля GD. картинка капчи генерируется средствами PHP.
2. Если не работает UPD1(кодировка win1251) возможно модуль PHP — iconv не подключен, также проверьте.
Проверяем наличие PHP модулей командой phpinfo();
UPD4:
Отпишусь сразу всем, в последней сборке от 08.11.2012 исправлены следующие баги:
— отображение картинки капчи при ответе на комментарий
— ошибка при проверке капчи на ответ
Для самостоятельного устранения багов:
в файле /class.comments.php строка 131, измените строку на (подставив в ID букву R)
Было
<input type="text" name="capcha" id="Rcapcha" value="" class="inputComment"/><br/>
Стало
<input type="text" name="capcha" id="Rcapcha" value="" class="inputComment"/><br/>
Расшифровка возможных ошибок:
ERR1: Ошибка: Имя должно состоять более чем из 3 символов
ERR2: Ошибка: E-Mail указан неверно
ERR3: Ошибка: Отсутствует текст комментария
ERR4: Ошибка: Не удается установить тип комментария. Попробуйте позже
ERR5: Ошибка: Не верно указан проверочный код с картинки.
Проблемы с работой в кодировке Windows-1251:
При работе скрипта в данной кодировке не всегда правильно распознается введенный текст скриптом JavaScript, это может проявляться в некоторых браузерах. Желательно использовать кодировка UTF-8
Если не отображаются дефолтные-аватарки(картинки заглушки), то пути к картинкам-дефолтным аватркам при комменте нужно прописать абсолютные
строки 260, 324 в файле class.comments.php,
было
$img='images/boy48.gif';
стало
$img='http://example.com/comments/images/boy48.gif';
Похожие записи
96 комментариев to “Комментарии на PHP, Ajax, mySQL”
Оставить комментарий
Full Stack
Senior, Architect
предложить оффер
- jQuery: как получить значение атрибута?
- PHP работа с изображением, класс SimpleImage
- Интеграция с API ОСАГО сайта sravni.ru
- Комментарии на PHP, Ajax, mySQL
- PHP: Категории бесконечного уровня вложенности.
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Как создать Telegram-бота с авторизацией через сайт к записи
- PHP скрипт: каталог закладок на сайты к записи
- Валидация на PHP к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
Archive
- +2024 (31)
- Декабрь 2024 (3)
- Ноябрь 2024 (13)
- Октябрь 2024 (8)
- Сентябрь 2024 (1)
- Август 2024 (5)
- Май 2024 (1)
- +2023 (27)
- Ноябрь 2023 (1)
- Октябрь 2023 (13)
- Сентябрь 2023 (10)
- Апрель 2023 (1)
- Март 2023 (1)
- Февраль 2023 (1)
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (36)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (41)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (7)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Пакетное добавление сайтов в панель ISP Manager 6 07.12.2024
- Обрезка документа PDF в Linux из PHP 06.12.2024
- Прокси веб-сервера Apache и nGinx 03.12.2024
- Настройка WebSocket на сайте для быстрого обмена данными 30.11.2024
- Подключение сайта к доставке DPD по API 28.11.2024
Есть возможность настройки индивидуальных комментариев для разных страниц?
Да разумеется, на каждой странице будут свои комментарии. Скрипт автоматически привязывается к URL каждой страницы и выводит на ней только те комментарии которые относятся к ней.
Вот у меня Ошибка выходит хотелось бы узнать почемУ??
Вот она:
Ошибка DB:
Table ‘wordpress.rche_users’ doesn’t exist
SELECT rche_comments.*, rche_users.photo, rche_users.username, rche_users.userID FROM rche_comments LEFT JOIN rche_users ON rche_comments.user =rche_users.userID WHERE rche_comments .url=’d4aafe19309f8ffa82698c3e7279bf88′ ORDER BY rche_comments.id ASC
Создайте еще таблицу (сразу не доложил в архив, поправил)
— Структура таблицы `rche_users`
CREATE TABLE IF NOT EXISTS `rche_users` (
`userID` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL DEFAULT »,
`password` varchar(100) NOT NULL DEFAULT »,
`email` varchar(150) NOT NULL DEFAULT »,
`family` varchar(50) NOT NULL,
`name` varchar(50) NOT NULL,
`name_two` varchar(50) NOT NULL,
`wm` varchar(15) NOT NULL,
`photo` varchar(255) NOT NULL,
`active` tinyint(1) NOT NULL DEFAULT ‘0’,
`gid` int(11) NOT NULL,
`date` varchar(20) NOT NULL,
`rate` int(11) NOT NULL,
`money` float NOT NULL,
`desc` varchar(255) NOT NULL,
`profile` text NOT NULL,
`country` int(11) NOT NULL,
`region` int(11) NOT NULL,
`city` int(11) NOT NULL,
`online` int(11) NOT NULL,
`alertmail` int(11) NOT NULL,
`alertlich` int(11) NOT NULL,
PRIMARY KEY (`userID`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`),
KEY `active` (`active`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3293 ;
Вставку видео бы поддержать- былоб классно. Если не чисто кодом, то может через тег типа [youtube]
а в настройках скрипта задавать шаблон вывода- на случай смены ютубовского кода для встраивания..
И еще можно добавить оценку камента юзерами (типа понравился-нет) — потом можно будет выводить типа самые оцененные каменты или чтото в этом роде..
И еще поддержать загрузку картинок юзерами. А то щас картинки можно встраивать в камент тока с других страниц, а свою юзер загрузить не сможет.
Есть ли вероятность, что уважаемый автор реализует вышеприведенные доработки?
🙂
Вероятность конечно есть, но на сколько в обозримом будущем сказать очень сложно. (Завалы катастрофические)
Да, и одна из важных нынче возможностей- регистрация с помощью логинов соцсетей (только не использовать гумно типа логинзы).
И вот за такой скрипт нежалко и денег заплатить))
На всякий случай, если Вы, Роман, соберетесь закодить это дело, вот микро тз:
1. аутентификация через соцсети с поддержкой репоста камента на стены ВК или ФБ;
2. поддержка загрузки картинок;
3. поддержка вставки видео с ютуба и вимео с возможностью менять в настройках скелет вывода на случай смены формата ютубом;
4. рейтингование каментов юзерами;
Если это все будет- думаю многие бы заплатили бы. Я- точно.
Буду ждать, как Вы разгребете завалы)
Ок, Беру на заметку. Спасибо за ТЗ!
Роман вот новая ошибочка:)) Warning: Cannot modify header information — headers already sent by (output started at W:\html\test\www\comments\index.php:6) in W:\html\test\www\comments\comments.c.php on line 331
что тута посмотрел в коде не понял ошибки!!!
Это происходит при комментирование после обнавлении страрницы эта ошибка уходит!!! кстати если не обнавить страницу новый комментарий не напишшешь!
кстати найден баг при подключении даного скрипта в wordpress написании коментария и обновления страницы сообщение еще раз добавляеться!!!!
Большое вам человеческое спасибо)))))5 дней ищу в винтернете нормальный скрипт комментов))))Спасибо))))
помогите пожалуйста(сделал все как вы пишите в инструкции но проблема с базами данных на странице http://my-muzhiki.ru/statie/hochu_zarabotat_deneg.php выдает ошибку Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘user4578_1’@’localhost’ (using password: YES) in /home/user4578/my-muzhiki.ru/www/comments/dbsql.class.php on line 123
Can’t connect to DB. Server. localhost, user: user4578_1
Ошибка «Access denied for user» — проверьте правильно ли указан логин для доступа к БД.
подлючился к базам данных теперь такая ошибка ERR3
но пред этим вышла форма комментов с закорючками,я написал пробный комммент нажал отправить и она исчезла теперь ERR3 стоит и все(((помогите пожалуйста((
с закарючками — это проблема в кодировки, скрипт использует кодировку utf8, а ваш сайт работает с кодировкой windows-1251. Нужно пересохранить файлы скрипта в кодировке windows-1251, это можно сделать с помощью программы Notepad++ (открываете файл, и жмете сохранить, при сохранении выбираете нужную кодироку)
ERR3 — скрипт не получает текст сообщения, проверьте наличие подключенного jQuery.
Если разобрать не сможете, пишите в обратную форму, можете предоставить доступ по ftp, я проверю и постараюсь помочь с настройкой.
я выслал в форму обратки доступ спасибо вам большое)а то я уж незнаю что и делать с этими комментами для сайта весь инет перерыл,вашу отличную статью нашел и один фиг не получается((я не учился не где web програмированию самоучка,сайт сам сделал полностью,а как коменты сделать не могу и все как проклятье какое то
Спасибо))за настройку скрипа отлично работает на мой взгляд лучший скрипт комментов для сайта)
Объясните толково как попасть в админку.
Для входя в админку, добавте к вашему урл переменную pass=пароль_заданный_в_конфиге.
Например: http://example.com/comment.html?pass=12345
Спасибо. Подскажите в каком файле можно отредактировать внешний вид(шаблон) окно редактора tiny_mce ?
Настройка кнопок в редакторе осуществляется в файле js/rcheComment.js, строки 23 и 24 — для основного окна комментариев и строка 93 для окна комментариев ответов.
Пример строки:
theme_advanced_buttons1 : «cut,copy,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,emotions,image»,
Файл со стилями CSS, находится здесь:
css/content.css
Как настраивать его, хорошо описано в статье
http://webhamster.ru/site/page/index/articles/comp/15
Спасибо
А как можно настроить контекстное меню при клике правой кнопкой мыши в основном окне комментариев?
На этот вопрос к сожалению ответить вам не смогу.
А где хранится путь до картинки капчи?
У меня картинка не появляется!!!
У просто все файлы комментов лежат в отдельной папке comments !!!
В файле class.comments.php, 132 строка, там есть метод $this->path[‘capcha’], собственно и есть вставка пути к картинке, но! картинка при этом генерится PHP скриптом, а именно capcha.php и class.captcha.php, если картинка не отображается возможно ошибка выполнения данного скрипта. Ошибка может быть связана с отсутвием на хостинге включенного модуля PHP: imagick.so или gd.so (чесно уже не помню есть ли там реализованная поддержка переключений между ними). В общем выполните команду phpinfo(); и убедитесь что imagick и GD = enable
Исправлен баг с отображением картинки сapcha.
а какие файлы нужно обновить, чтоб капча отображалась?
может я что то не так делаю, но капча все равно не отображается, даже после замены comments.php
в чем может быть проблема??
Капча может не отображаться из-за отсутвия модулей php — imagick и gd, картинка т.к. генерируется средствами PHP. Проверьте их наличие
Не подскажите-как сделать что бы данные о пользователях он брал из имеющийся таблицы зарегистрированных пользователей?
[spoiler] CREATE TABLE `USERS` (
`id` int(10) NOT NULL auto_increment,
`username` varchar(50) NOT NULL,
`fullname` varchar(75) NOT NULL,
`password` varchar(50) NOT NULL,
`email` varchar(75) NOT NULL,
`active` tinyint(1) NOT NULL,
`code` varchar(75),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1; [/spoiler]
Заранее спасибо за ответ.
Нужно передать массив с данными пользователя в преременную $comments->user=array();
Спасибо.
Извиняюсь за тупой вопрос, но… где этот массив находится-в таблице, или в каком то файле?)
PS. Я пробовал делать как писал пользователь «денискаааа» несколькими постами выше, но у меня та же ошибка, что и у него.
Не могли бы вы привести небольшой пример-как это должно выглядеть?
Как у вас в демо-примере, так и в самом скрипте не работает капча на ответ, когда отвечаешь на коммент, воодишь капчу, скрипт пишет не правильно введенно и не пускает!
Исправлено! Был баг в в JS скрипте. Качайте последнюю сборку, все по той же ссылке.
Комментарии второго уровня не работают.
1. Сначала исправил ошибку в пути капчи.
Она стала выводиться, но все равно правильно не определяется.
2. Комментарии второго уровня при обновлении страницы — не показываются.
class.comments.php строка 132
заменить $this->path[‘capcha’] на $this->paths[‘capcha’]
Капча начнет выводиться, но для ответа на коммент — будет все равно определяться неправильно.
Еще есть проблема в отображении ответов на комменты. После обновления страница — они не выводятся.
Как организовать запись комментов в файл, а не в бд Mysql?
Переписать все запросы к БД на запросы к файлу, в class.comments.php
у меня тоже такая проблема картинка не появляется. И самое главное скрипт работает если только страницу поместить в папку с файлами скрипта, в другой категории он уже не работает. Так все отлично никаких проблем я думаю что в адресации все дело да? пожалуйста ответьте мне это очень важно.
Форма выводится но без стилей + когда нажимаеш отправить перебрасывает на страницу с текстом ERR5
Здравствуйте Роман! Скрипт и вправду просто чудо. Я уже три дня ищу нормальный скрипт. Везде то не доделанные, то файлов не хватает, то еще что нибудь. Как я уже сказал скрипт прекрасный, НО есть одна проблема: Это касается ввода данных на русском языке, т.е. комментарий не добавляется, либо ошибка ERR1 либо ERR3 я так понял это связано с полями ввода имени и текста сообщения. А теперь самое интересное: если вводить русские слова английскими буквами то всё работает без проблем, ну и разумеется чисто английскими словами, а вот если хотя бы одно слово на русском то ошибка. В ЧЕМ ДЕЛО?
Отпишусь сразу всем, в последней сборке от 08.11.2012 исправлены следующие баги:
— отображение картинки капчи при ответе на комментарий
— ошибка при проверке капчи на ответ
Для самостоятельного устранения багов:
в файле /class.comments.php строка 131, измените строку на (подставив в ID букву R)
Было
<input type="text" name="capcha" id="Rcapcha" value="" class="inputComment"/><br/>
Стало
<input type="text" name="capcha" id="Rcapcha" value="" class="inputComment"/><br/>
Расшифровка возможных ошибок:
ERR1: Ошибка: Имя должно состоять более чем из 3 символов
ERR2: Ошибка: E-Mail указан неверно
ERR3: Ошибка: Отсутствует текст комментария
ERR4: Ошибка: Не удается установить тип комментария. Попробуйте позже
ERR5: Ошибка: Не верно указан проверочный код с картинки.
Проблемы с работой в кодировке Windows-1251:
При работе скрипта в данной кодировке не всегда правильно распознается введенный текст скриптом JavaScript, это может проявляться в некоторых браузерах. Желательно использовать кодировка UTF-8
Да скрипт хорош, жаль конечно бросать его, но а что делать , не переписывать же весь сайт под кодировку UTF-8. К тому же почему то не отображается картинка при вставке скрипта
outComments();
?>
на страницу где нужны комментарии, просто надпись «картинка».
И кстати файл comments.c.php, вообще отсутствует, не то что изменения в нем провести. В общем ладно, я хотел уже денежную благодарность вам дать, но видно не судьба. Всё равно Спасибо!
В последних комментариях я расписал возможные проблемы с отображением
картинки.
Проверяйте наличие PHP модулей GD, Imagick. Пропишите полный путь к
капче в конфиге. Также замечу, что в основном у всем пользователей
которые перевили скрипт в кодировку Win2151 он работает нормально
(отказ в работе редкое явление и по больше степени устранимое).
Файл comments.c.php переименован в class.comments.php. Вносить в тему
и в комментарии информацию о всех изменениях очень сложно.
За мотивацию словами о возможно благодарности, спасибо конечно!))
На счет class.comments.php я понял сразу просто перестраховался на всякий случай и поэтому спросил, не корректно конечно, но как получилось. А на счет: Вносить в тему
и в комментарии информацию о всех изменениях очень сложно — это я понимаю. Просто очень мало людей, которые вот так отзывчиво и терпеливо реагируют, а не посылают. У Вас Роман большое будущее. За всё спасибо. Попробую ещё по-копаться. Жалко такой скрипт бросать. Тем более что с английским работает, да и с русским работает только если не менять кодировки файлов, а просто после ввода комментария, в меню «вид» браузера поменять кодировку и вместо кирибезяк появляется нормальный коммент. Да дело 100% в кодировке, вот только где. Удачи и извините за назойливость.
Доброго времени суток. Отличный скрипт. Огромное человеческое спасибо автору!!!
Разрешите уточнить один вопрос: в Вашем коде указанно, что для удаления комментариев необходимо к адресу страницы сайта добавить ?pass=12345. Вопрос в следующем, как быть когда адрес страницы на которой размещен комментарий имеет такой вид, к примеру: http://site.com/page.html?id=1 ?
Полезная статья.
А что если адресом страницы будет выступать адрес такого вида: example.com/comments.php?id=1. Как тогда в этом случае записать ?pass=12345 для редактирования комментария?
В этом случае просто добавляем переменную
example.com/comments.php?id=1&pass=12345
Спасибо за ответ.
я так и делаю но к сожалению удалить комментарий не получается 🙁
При использовании кода
получаю следующее сообщение:
Warning: session_start() [function.session-start]: Cannot send session cache limiter — headers already sent (output started at /home/u40264/petrohelpru/www/obrashenie.html:5) in /home/u40264/petrohelpru/www/comments/config.php on line 39
В результате попытки ввода коммента (на английсуом, на всякий случай, хотя установлена cp1251) получаю еще одно сообщение:
Warning: Cannot modify header information — headers already sent by (output started at /home/u40264/petrohelpru/www/obrashenie.html:5) in /home/u40264/petrohelpru/www/comments/class.comments.php on line 354
В php слаб. Можете помочь понять причину?
Проблема в том, что скрипт выдает в браузер лишние символы перед тем как выдать заголовок header();
1. отключите вывод ошибок, команда error_reporting(0);
2. проверьте нет ли в скриптах пустых строк или пробелов перед , возможно символ пробела выдается браузеру до того как выдать заголовок. 3. проверьте наличие записей UTF8 BOM в файлах если они есть(спец. символ в начале файла - видна как закарючка), нужно убрать
В ASCII от вышеперечисленных сообщений удалось избавиться только помещением инклуда самой первой строкой (ДО DOCUMENT)! Но дальше началисьпроблемы с вводом коммета — сообщения ERR!
ПЛЮНУЛ И ПЕРЕВЕЛ ВЕСЬ СВОЙ САЙТ НА utf-КОДИРОВКУ.
Все страницы сайта в notepad++ перевел в кодировку UTF (подчеркиваю — с BOM). Снова начались проблемы с warning’ами. Они разрешаются переводом файлов в кодировку UTF без BOM.
Но теперь пропала капча, т.к. ваши конструкция с this->path и this->paths выдают неверный адрес файла capcha.php.
Как теперь увидеть капчу?
И в какой кодировке должны быть всефайлы вашего скрипта? (C BOM или без)?
1. Заменить this->path на this->paths (в посл версии все исправлено)
2. Без BOM (это относится ко всем скриптам, не только к моим)
Капча стала показываться только после замены в конфиге строки
$paths[‘capcha’] = ‘/comments/capcha.php’; // вариант: /comments/capcha.php
Что, впрочем, очевидно. Тут я сам дурак.
Но дадьше идет ERR5 — капча не проходит.
Все файлы вашего скрипта сделаны без BOM. Все скрипты на сайте тоже.
Ничего не понимаю!
Роман, помогите пожалуйста, браузер выдает такие ошибки:
Warning: session_start() [function.session-start]: Cannot send session cookie — headers already sent by (output started at /home/amway39/public_html/index.php:1) in /home/amway39/public_html/comments/config.php on line 40
Warning: session_start() [function.session-start]: Cannot send session cache limiter — headers already sent (output started at /home/amway39/public_html/index.php:1) in /home/amway39/public_html/comments/config.php on line 40
Ошибка говорит о том, что перед вызовом команды session_start() в браузер выводятся какие-то символы, чего быть не должно. Возможно вы подключили скрипт-конфиг коментариев в середине документа-страницы. Конфиг нужно подключать в самом начале всех скриптов, в вашем случае в index.php.
Теория, вкратце, такова: Идентификатор сессии в данном случае пишется в файлы cookie.
cookie, в свою очередь, всегда устанавливаются через отправку заголовков — headers.
У вас же пишет, что заголовки УЖЕ были отправлены. И, как я понял, отправил их никто иной как файл index.php — первой строкой
Начало файла index.php должно быть такое:
Код:
Пробел или пустая строка (как и все другие символы) перед
Внесен ряд мелки багфиксов в скрипт комментариев.
К меня все отлично работает на денвере, но на хостинге инклуд подключения вывода комментариев не подключает форму и тупо после него не выводится ниго вообще , почему такое получается?
Нужно конкретно смотреть и изучать, что и как вы подключаете. Ответ дать не могу.
как изменить метод сортировки, чтоб новые комментарии были вверху?
class.comments.php, 194 строка: ASC меняем на DESC
Спасибо метод сортировки поменялся. Подскажите как сделать, чтоб форма «Оставить свой комментарий» была вверху, а не после всех отзывов? и есть ли возможность оставлять оценку магазину?
Нельзя форму написания комментариев поднять вверх вместе с сортировкой????
Роман, если в class.comments.php, в 194 строке ASC меняем на DESC, то действительно последние комментарии (после обновления страницы) располагаются вверху, но при этом перестают выводиться ответы к комментариям. Не подскажете как быть ?
Роман, все работает норм только если страница расположена в той же папке что и файлы скриптов , при попытке же подключить комментарии на страницах расположенных в других директориях нормальной работы не наблюдается. Как выйти из этого положения ? Заранее спасибо.
Возможно нужно прописать абсолютные пути к JS и CSS, вместо относительных.
Пример как было:
Как стало
Большое спасибо за плагин! Пользуемся с радостью!
Отличный скрипт, толково написан, спасибо автору. Если у вас вместо сообщений об ошибке вылазят коды типа ERR1 и так далее, в файл rcheComment.js перед строкой
if(html != ‘ERR1’ && html != ‘ERR2’ && html != ‘ERR3’ && html != ‘ERR4’ && html != ‘ERR5’) {
добавьте строчку
html = html.trim();
Готово, спасибо!
У меня страницы с параметрами.. если я добавляю еще параметр админ.. то пропадают комментарии… так как они привязаны к определенным страницам… как быть тогда?
Нужно добавлять параметр pass = пароль.
Пример http://styleinstone.ru/index.php?page=5&id=86&pass=123
как привязать к регистрации, чтобы не нужно было вводить имя и email, а сообщения отправлялись от зарегистрированного пользователя?
В конфиге нужно указать, $comments->login=true; (строка 44)
И передать в преременную $comments->user=array(); массив с данными пользователя
$user[‘password’]
$user[‘userID’]
$user[‘photo’]
$user[‘username’]
При своей регистрации вставляю данные в таблицу rche_users логин и пароль.
В конфиге $comments->login=true;
$comments->user=array($user[‘password’], $user[‘userID’], $user[‘username’]);
На странице там где комментарии в форме пропали поле имя и email, но при добавлении комментария выскакивает ошибка : Ошибка: Не удается установить тип комментария. Попробуйте позже. В чём может быть проблема?
Есть возможность оставлять коменты только зарегистрированным пользователям?
Для сортировки от нового к старому достаточно перед $this->tree_print($sortcomm); добавить krsort($sortcomm); в файле class.comments.php, а вот перенсти форму на верх оказалось чуть сложнее, там нужно не только перетащить echo $this->formComment(); но и изменить порядок div-ов и кучу всего изменить в echo rcheComments.js
У меня чего-то никак не хочет показывать капчу пишет, что изображение содержит ошибки, хотя когда в файл сохраняю файл капчи, то нормальное изображение
У вас ошибка в коде
class.captcha.php
надо
$ifunc( $this -> image, NULL, $this->imagetype[1]);
NULL ,а не пустую строку, иначе будет ошибка.
А так комменты хорошие
Возможно ли адаптировать этот скрипт под Ucoz для модуля «Редактор страниц» при покупке пакета PHP?
Теоретически возможно, но на практике мною не проверялось.
Добрый вечер! Столкнулся с такой проблемой, что обрезаются длинные комментарии. Длина более 1 816 символов. Куда копать? Это ограничение базы данных или ограничение скрипта?
Здравствуйте!
Я создал таблицы в существующей БД сайта, импортировав в неё install.sql. У меня уже существует файл database.php. В нём прописано подключение к БД. Что теперь делать с Вашим файлом config.php?
У меня уже существует файл index.php. Что делать с Вашим файлом index.php? Я их пробовал объединить в один, но произошел конфликт стилей. Стили на главной странице стали Вашими.
Пожалуйста, помогите советом, или дайте направление действий!
Добрый день! Скрипт нужно залить в отдельную папку, что-бы файлы не пересекались.
Роман, спасибо за ответ! С этим я уже разобрался. Получилось все без создания папки. Залил все в корень с переносом файлов в мои существующие папки.
Теперь другая проблема! Уже сутки не могу решить. Не отображается капча. У меня установлен Open Server PREMIUM. В файле info.php есть модули GD, imagick. PHP Version 5.4.45.
Также не понимаю, почему на Вашей demo-странице комментов http://rche.ru/examples/comments/index.php эта капча также не отображается. Поэтому протестировать ее на demo-странице я не могу.
Для работы капчи на PHP 5.6, замените в файле class.captcha.php строку 264
$ifunc( $this -> image, «», $this->imagetype[1] );
на
$ifunc( $this -> image, NULL, $this->imagetype[1] );
спасибо Роман — все заработало, теперь только не могу понять что не так когда кидаю файлы в отдельную папку….
…пути меняю:
require_once(‘class.registry.php’);
require_once(‘class.dbsql.php’);
require_once(‘class.controller.php’);
require_once(‘class.comments.php’);
require_once(‘functions.php’);
require_once(‘markhtml.php’);
на
require_once(‘../comments/class.registry.php’);
require_once(‘../comments/class.dbsql.php’);
require_once(‘../comments/class.controller.php’);
require_once(‘../comments/class.comments.php’);
require_once(‘../comments/functions.php’);
require_once(‘../comments/markhtml.php’);
Как сделать код валидным для HTML5? Высыпало кучу ошибок по поводу атрибутов элемента table. Они устарели. Как изменить стили для таблицы? Они генерируются JS? В каком файле?
Здравствуйте!
Помогите пожалуйста, получаю вот такую ошибку после заполнения полей Имя, электронная почта, Текст комментария и капчи:
Ошибка DB:
Incorrect integer value: » for column ‘user’ at row 1
INSERT INTO rche_comments (`reply`,`user`,`name`,`email`,`comment`,`date`,`url`,`pass`,`urlOpen`) VALUE (‘0′,»,’dfgdfg’,’fdgdfg@dfsf.sfd’,’dsfsdf ‘,’1508661297′,’6666cd76f96956469e7be39d750cc7d9′,’SMavVeau’,’/’)
Внес изменения в скрипт, можете скачать последнюю версию или внести правки самостоятельно. Файл class.comments.php строка 350.
Заменить код
VALUE (‘$replyComment’,'{$this->user[‘userID’])’},’$name’,’$email’,’$text’,’$time’,’$post_url’,’$pass’,’$urlOpen’)»;
на
VALUE (‘$replyComment’,».intval($this->user[‘userID’]).»,’$name’,’$email’,’$text’,’$time’,’$post_url’,’$pass’,’$urlOpen’)»;
Жалко нет регистрации и админки! хотел бы установить систему на под домен, и регистрация профиль авторизация все на под домене было , а комментарии на своем домене!
Спасибо большое, то что я искала)
Здравствуйте. Сколько будет стоить настройка и установка комментирования хотя бы на несколько страниц. Я самоучка , но тут пока не хватает ума. Спасибо.