Создать ответ 
Ваша форма "Добавить комментарий к теме:"
Автор Сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #51
RE: Ваша форма "Добавить комментарий к теме:"
Цитата:3. Как сделать чтобы после отправки нового комментария он независимо от модерации сразу поступал на указанный e-mail администратора сайта?
Вот повезло та, как раз хотел задать вопрос по этому поводу, а тут уже решение лежит. Огромное спасибо! Blush

Только вот я хотел, чтобы сообщения на почту о поступлении комментария как-нибудь посылались из админки раз в час, например поступило на мыло сообщение о том что добавлен комментарий и если в течение скажем часа его (их) не отмодерировать то посылается повторное сообщение на указанное мыло. Хотя в принципе и так круто, теперь не нужно постоянно возле компа торчать в ожидании обещанного комментария - достаточно на телефон почтовик установить который при получении письма трезвонит во все колокола!

Цитата:P.S. Доработку по поводу большого количества комментариев попробую сделать в выходные.

То же жду с нетерпением! Форма потрясающая.

P.S... Кстати после обновления дизайна, сайт намного интереснее и привлекательней стал. Красивенько так освежили лицо сайта. Спасибо!
(Последний раз сообщение было отредактировано 05.07.2012 в 00:57:08, отредактировал пользователь Incognito.)
05.07.2012 00:30:05
Найти все сообщения Цитировать это сообщение
Vladimir1709 Не на форуме
Рядовой
*

Сообщений: 6
У нас с: Jul 2012
Сообщение: #52
RE: Ваша форма "Добавить комментарий к теме:"
Здравствуйте!
У меня такая проблема, при установке всех кодов на страницу моего сайта в верхней чести появляется такая вещь:
Цитата:Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/u71968/gendilanaru/www/primerenie.html:3) in /home/u71968/gendilanaru/www/primerenie.html on line 12

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/u71968/gendilanaru/www/primerenie.html:3) in /home/u71968/gendilanaru/www/primerenie.html on line 12

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /home/u71968/gendilanaru/www/primerenie.html on line 14

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/u71968/gendilanaru/www/primerenie.html on line 14


А при установке самого кода вывода сообщений появляется такое:

Цитата:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/u71968/gendilanaru/www/primerenie.html on line 268

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/u71968/gendilanaru/www/primerenie.html on line 269

Подскажите, пожалуйста, как устранить эти ошибки.
С уважением Владимир
05.07.2012 12:19:52
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #53
RE: Ваша форма "Добавить комментарий к теме:"
Здравствуйте Владимир.
Судя по первым сообщениям, ошибка заключается в том, что Вы стартуете сессию после вывода заголовка странички или какого-либо содержимого странички.

Для устранения ошибки перенесите строчку session_start(); в самое начало странички (до HTML тегов).

Следующие ошибки связаны с неправильным подключением к MySQL и возможно исчезнут при исправлении первой ошибки.
05.07.2012 18:27:50
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #54
RE: Ваша форма "Добавить комментарий к теме:"
Ну, как и обещал, сегодня доделал доработку по поводу постраничного вывода большого количества комментариев.

На свой сайт пока не ставил, т.к. количество комментариев пока не велико.

Итак, преступим. Для начала, до кода вывода комментариев помещаем функцию:

Код:
function col_pages($count, $this) {
$j=0; $out=""; $td='<td width="35">';
if (($this-3)<1) $i=1;
    else $i=$this-3;
if ($i==1) $i++;

if (($count-7)<$i) $i=$count-7;
if ($i<2) $i=2;

if ($this!=1) $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list=1">1</a></td>';
    else $out.=$td.'<b>[ 1 ]</b></td>';

if ($i>2) $out.=$td.'...</td>';

while ((($i<=($this+3)) or ($j<7)) and ($i<$count)) {
if ($i!==$this) $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$i.'">'.$i.'</a></td>';
    else $out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if ($i<$count) $out.=$td.'...</td>';
if ($count>1) {
    if ($count!=$this) $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$count.'">'.$count.'</a></td>';
    else $out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return $out;
}

Данная функция и делает всю основную работу по подсчету и выводу ссылок на странички с комментариями.

Далее в коде вывода комментариев меняем строчки:
Код:
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1 ORDER BY id", $link);
$number = mysql_num_rows($result);

на такие:
Код:
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1", $link);
$count_list=floor((mysql_num_rows($result)-1)/10)+1;

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;


$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1 ORDER BY id LIMIT ".($comment_list*10-10).",10", $link);
$number = mysql_num_rows($result);

Ну и после комментариев добавляем ссылки на другие странички с комментариями. Делается это так:
Код:
echo '<table border="0"><tr align="center"><td>Еще комментарии:</td>'.col_pages((int)$count_list, (int)$comment_list)."</tr></table>";

Потом на сайте сделаю отдельную тему с более универсальным кодом постраничного вывода информации и более подробным описанием.
07.07.2012 15:12:43
Найти все сообщения Цитировать это сообщение
Vladimir1709 Не на форуме
Рядовой
*

Сообщений: 6
У нас с: Jul 2012
Сообщение: #55
RE: Ваша форма "Добавить комментарий к теме:"
(05.07.2012 18:27:50)Admin писал(а):  Здравствуйте Владимир.
Судя по первым сообщениям, ошибка заключается в том, что Вы стартуете сессию после вывода заголовка странички или какого-либо содержимого странички.

Для устранения ошибки перенесите строчку session_start(); в самое начало странички (до HTML тегов).

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


С ошибкой вроде бы разобрался, теперь другая проблема: при написании комментария вместо буквы "ш" появляется символ �?, что с ним делать? Пример смотрите на gendilana.ru/primerenie.html
07.07.2012 18:51:52
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #56
RE: Ваша форма "Добавить комментарий к теме:"
Очень странно. Scratch
Если бы весь текст так писался, то можно было бы предположить что дело в кодировке. А когда меняется всего одна буква, то даже не знаю в какую сторону копать.
В MySQL таблице в тексте сообщения тоже вместо буквы "ш" символы "�?"
Тут думаю, для начала, стоит выяснить на каком этапе вместо буквы "ш" появляются символы "�?" (при записи в MySQL, или при выводе с MySQL на страничку).

P.S. Создал отдельную тему, посвященную постраничному выводу - Постраничный вывод или постраничная навигация.
07.07.2012 19:03:08
Найти все сообщения Цитировать это сообщение
ortalex Не на форуме
Рядовой
*

Сообщений: 7
У нас с: Jun 2012
Сообщение: #57
RE: Ваша форма "Добавить комментарий к теме:"
(07.07.2012 15:12:43)Admin писал(а):  Ну, как и обещал, сегодня доделал доработку по поводу постраничного вывода большого количества комментариев.

На свой сайт пока не ставил, т.к. количество комментариев пока не велико.

Итак, преступим. Для начала, до кода вывода комментариев помещаем функцию:

Код:
function col_pages($count, $this) {
$j=0; $out=""; $td='<td width="35">';
if (($this-3)<1) $i=1;
    else $i=$this-3;
if ($i==1) $i++;

if (($count-7)<$i) $i=$count-7;
if ($i<2) $i=2;

if ($this!=1) $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list=1">1</a></td>';
    else $out.=$td.'<b>[ 1 ]</b></td>';

if ($i>2) $out.=$td.'...</td>';

while ((($i<=($this+3)) or ($j<7)) and ($i<$count)) {
if ($i!==$this) $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$i.'">'.$i.'</a></td>';
    else $out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if ($i<$count) $out.=$td.'...</td>';
if ($count>1) {
    if ($count!=$this) $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$count.'">'.$count.'</a></td>';
    else $out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return $out;
}

Данная функция и делает всю основную работу по подсчету и выводу ссылок на странички с комментариями.

Далее в коде вывода комментариев меняем строчки:
Код:
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1 ORDER BY id", $link);
$number = mysql_num_rows($result);

на такие:
Код:
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1", $link);
$count_list=floor((mysql_num_rows($result)-1)/10)+1;

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;


$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' and moderation=1 ORDER BY id LIMIT ".($comment_list*10-10).",10", $link);
$number = mysql_num_rows($result);

Ну и после комментариев добавляем ссылки на другие странички с комментариями. Делается это так:
Код:
echo '<table border="0"><tr align="center"><td>Еще комментарии:</td>'.col_pages((int)$count_list, (int)$comment_list)."</tr></table>";

Потом на сайте сделаю отдельную тему с более универсальным кодом постраничного вывода информации и более подробным описанием.

Спасибо большое. Будем пробовать
07.07.2012 20:08:18
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #58
RE: Ваша форма "Добавить комментарий к теме:"
Здравствуйте! У меня в поле "Имя" автоподстановка имени (логина) из системы авторизации (по Вашему методу пару страниц назад обсуждали), так вот, подскажите, пожалуйста, можно ли сделать так, чтобы это поле ИМЯ нельзя было изменить: то есть имя автоматически прописалось и пользователь уже не смог бы поменять буковки в этом окошечке.
И второй вопрос, можно ли в админке сделать всплывающее сообщение на подтверждение удаления комментария, типа "Вы точно решили удалить этот комментарий?", а то с просони уже пару раз удалил очень важные комментарии через админку.

Спасибо!
08.07.2012 10:48:58
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #59
RE: Ваша форма "Добавить комментарий к теме:"
Здравствуйте.
При минимальных навыках программирования (и без них в принципе тоже) всегда можно будет изменить имя через исходный код браузера и отправить уже исправленное на сервер.
Поэтому рекомендую Вам создать дополнительное невидимое поле, содержащее реальное имя пользователя:
Цитата:<input type="hidden" name="name _user" value="'.Тут_реальное_имя.'">
Таким образом, пользователь изменивший свое имя будет думать, что обманул Вас и не полезет в исходный код, а на сервер придет и то имя что он указал и его реальное.

По поводу подтверждения удаления чуть-чуть доделаю и выложу, т.к. определенные наработки уже были, но я отказался от них.
08.07.2012 15:17:04
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #60
RE: Ваша форма "Добавить комментарий к теме:"
(08.07.2012 15:17:04)Admin писал(а):  Таким образом, пользователь изменивший свое имя будет думать, что обманул Вас и не полезет в исходный код, а на сервер придет и то имя что он указал и его реальное.
Ого оригинальное решение, спасибо огромное!!!! Всё получилось, теперь буду просекать кто из реальных пользователей под анонимом всякую гадость пишет! ))))
(Последний раз сообщение было отредактировано 08.07.2012 в 16:46:38, отредактировал пользователь Incognito.)
08.07.2012 16:34:36
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru