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

Сообщений: 7
У нас с: Jun 2012
Сообщение: #41
RE: Ваша форма "Добавить комментарий к теме:"
Здравствуйте!
Мне понравился ваш скрипт "Форма добавления комментариев к темам" и я хочу его внедрить в свой будущий сайт.
Сделал все как вы написали, создал таблицы, вписал в страницу все коды PHP, однако скрипт не работает. На экране выводятся сообщения об ошибках. Вот здесь пробная страница: _shahovskie.16mb.com/comm4.html, а здесь админка: _shahovskie.16mb.com/***.php.
В своей статье касающейся этого скрипта вы пишите: "Не забудьте подключиться к MySQL перед началом данного кода (до session_start()) если Вы не сделали это ранее". Я не знаю как это сделать, возможно в этом причина ошибок. Знаю, что имя базы MySQL, пароль и имя пользователя должно где-то прописываться на странице. Помогите, пожалуйста.
С уважением, Александр.
30.06.2012 23:10:34
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #42
RE: Ваша форма "Добавить комментарий к теме:"
Здравствуйте Александр.

Вы правильно думаете, что причина том, что Вы не подключились к MySQL:
Цитата:Access denied for user 'root'@'localhost' (using password: NO)

Для подключения к MySQL используйте следующий код:
Код:
$link = mysql_connect("localhost", "имя пользователя", "пароль") or die("Could not connect: " . mysql_error());
mysql_select_db("имя базы данных", $link);

Имя пользователя, пароль и имя базы данных Вам должны быть известны раз Вы уже создали необходимые таблицы.
30.06.2012 23:49:43
Найти все сообщения Цитировать это сообщение
ortalex Не на форуме
Рядовой
*

Сообщений: 7
У нас с: Jun 2012
Сообщение: #43
RE: Ваша форма "Добавить комментарий к теме:"
(30.06.2012 23:49:43)Admin писал(а):  Здравствуйте Александр.

Вы правильно думаете, что причина том, что Вы не подключились к MySQL:
Цитата:Access denied for user 'root'@'localhost' (using password: NO)

Для подключения к MySQL используйте следующий код:
Код:
$link = mysql_connect("localhost", "имя пользователя", "пароль") or die("Could not connect: " . mysql_error());
mysql_select_db("имя базы данных", $link);

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

Здравствуйте!
Спасибо за оперативный ответ. Сделал все как вы сказали, однако опять выдаются ошибки подключения к MySQL. К тому же после добавления кода подключения к MySQL остальная часть страницы и сама форма добавления комментариев перестали отображаться. Посмотрите, пожалуйста, в чем дело?
01.07.2012 16:55:19
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #44
RE: Ваша форма "Добавить комментарий к теме:"
Трудно что-то посоветовать, не видя исходного кода. Как видно, ошибка в 5 и 7 строках соответственно. Возможно, Вы неправильно указали имя пользователя (попробуйте изменить на u233******). Менее вероятно Вы неправильно указали имя базы данных.
01.07.2012 17:50:58
Найти все сообщения Цитировать это сообщение
ortalex Не на форуме
Рядовой
*

Сообщений: 7
У нас с: Jun 2012
Сообщение: #45
RE: Ваша форма "Добавить комментарий к теме:"
(01.07.2012 17:50:58)Admin писал(а):  Трудно что-то посоветовать, не видя исходного кода. Как видно, ошибка в 5 и 7 строках соответственно. Возможно, Вы неправильно указали имя пользователя (попробуйте u233******). Менее вероятно Вы неправильно указали имя базы данных.

Здравствуйте!
Почему не подключалась База Данных MySQL я разобрался. Нашел в справке на базу: "Важно! Никогда не используйте 'localhost' как имя MySQL сервера, потому что Вы получите ошибки доступа". В общем вместо 'localhost' написал имя MySQL сервера "mysql.hostinger.ru" и форма заработала. Однако есть проблема с модерацией. После отправки сообщения оно публикуется сразу, хотя внизу формы появляется сообщение: "Комментарий принят и ожидает модерации". При этом в админ панели сообщения на модерацию не приходят. Все время один ответ "Новых комментов нет!". В файле "adminka.php" все коды php прописаны как написано в статье. Вот такая проблема!
А еще я хотел спросить:
1. Сколько последних комментариев публикуется на странице и что происходит после превышения этого числа последних комментариев?
2. Как подключить форму добавления комментариев к нескольким страницам?
3. Как сделать чтобы после отправки нового комментария он независимо от модерации сразу поступал на указанный e-mail администратора сайта?
Спасибо. С уважением, Александр
02.07.2012 18:56:17
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #46
RE: Ваша форма "Добавить комментарий к теме:"
По поводу localhost, то это скорее всего из-за настроек Вашего хостера.
Далее по порядку:
1) В приведенном нами коде публикуются ВСЕ комментарии, оставленные пользователями.
2) Все уже сделано. Для этого было создано поле theme, в которое помещается имя странички, с которой был отправлен комментарий и публикуется соответственно тоже только на ней.
3) Для этого существует стандартная функция PHP mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])

Просто добавьте перед строчкой $_SESSION[send]='Комментарий принят и ожидает модерации.'; следующее:
Код:
$title = 'Заголовок письма';
$mess =  $_SESSION[comment_user_text];
$to = 'Ваш e-mail';
$from='От кого (имя сайта Вашего, например)';
mail($to, $title, $mess, $from);

Чтобы сообщение не публиковалось сразу, а уходило на модерацию, проверьте строчку на страничке с формой для отправки сообщений:
Код:
$result = mysql_query("SELECT * FROM comment
WHERE theme='".$_SESSION[mess_url]."' and moderation=1 ORDER BY id", $link);

Скорее всего, у Вас не хватает and moderation=1

P.S. По поводу 3 пункта сам не проверял, возможно, где-то всплывет ошибка. И еще, поставьте пароль на форму модерации комментариев.
02.07.2012 19:19:04
Найти все сообщения Цитировать это сообщение
ortalex Не на форуме
Рядовой
*

Сообщений: 7
У нас с: Jun 2012
Сообщение: #47
RE: Ваша форма "Добавить комментарий к теме:"
(02.07.2012 19:19:04)Admin писал(а):  По поводу localhost, то это скорее всего из-за настроек Вашего хостера.
Далее по порядку:
1) В приведенном нами коде публикуются ВСЕ комментарии, оставленные пользователями.
2) Все уже сделано. Для этого было создано поле theme, в которое помещается имя странички, с которой был отправлен комментарий и публикуется соответственно тоже только на ней.
3) Для этого существует стандартная функция PHP mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])

Просто добавьте перед строчкой $_SESSION[send]='Комментарий принят и ожидает модерации.'; следующее:
Код:
$title = 'Заголовок письма';
$mess =  $_SESSION[comment_user_text];
$to = 'Ваш e-mail';
$from='От кого (имя сайта Вашего, например)';
mail($to, $title, $mess, $from);

Чтобы сообщение не публиковалось сразу, а уходило на модерацию, проверьте строчку на страничке с формой для отправки сообщений:
Код:
$result = mysql_query("SELECT * FROM comment
WHERE theme='".$_SESSION[mess_url]."' and moderation=1 ORDER BY id", $link);

Скорее всего, у Вас не хватает and moderation=1

P.S. По поводу 3 пункта сам не проверял, возможно, где-то всплывет ошибка. И еще, поставьте пароль на форму модерации комментариев.

Здравствуйте!
Спасибо за Вашу оперативность и исчерпывающий ответ.
Хочу сразу сказать, что "and moderation=1" на страничке с формой для отправки сообщений у меня было записано, а вот в форме модерации комментариев к темам стояло and moderation=0. Речь идет о следующем коде в форме модерации комментариев:
$result=mysql_query("SELECT * FROM comment WHERE moderation=0 ORDER BY id", $link); Но именно так и было написано в вашей публикации. Я исправил "0" на 1 и модерация заработала. Правильно ли это исправление?
Вместе с тем, хотя модерация и работает, но сообщения публикуются сразу. То есть работают функции "изменить", "удалить", а функция "показать" не работает т.к. сообщения публикуются сразу. В принципе меня это устраивает, т.к. после публикации комментария я через админпанель могу изменить или удалить любой комментарий.
Функция отправки комментариев на e-mail администратора сразу после их публикации также заработала, после внесения дополнительного кода, который вы указали. Спасибо за доработку.
У меня вопрос, а что делать, если комментариев будет 100-200 или более. На одной странице их хранить и читать неудобно. Если бы они записывались штук по 20 на одну страницу, а затем добавлялась новая страница, то это было бы удобно. Вы не планируете такую доработку?

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

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #48
RE: Ваша форма "Добавить комментарий к теме:"
В форме модерации комментариев к темам должно стоять and moderation=0 для того, чтобы модерировать только не проверенные сообщения.

Еще маленький нюанс: значение moderation в таблице comment для того, чтобы работала модерация по умолчанию должно быть равно 0.

Доработку по поводу большого количества комментариев на одной странице мы обязательно сделаем (самим тоже пригодится Wink).
03.07.2012 19:07:04
Найти все сообщения Цитировать это сообщение
ortalex Не на форуме
Рядовой
*

Сообщений: 7
У нас с: Jun 2012
Сообщение: #49
RE: Ваша форма "Добавить комментарий к теме:"
Извините, что вам надоедаю. Но благодаря вашим подсказкам теперь у меня модерация работает как надо, остались только два маленьких вопросика:
1. У вас на сайте опубликованные комментарии обведены красивой голубой полоской, что очень красиво и стильно. А у меня этой полоски нет. И линия, отделяющая сверху комментарии у вас на уровне этой полоски, а не на всю страницу. Не подскажете, как это сделать?
2. Если вас не затруднит, подскажите, как подключить пароль на админ панель. Имеется ввиду файл админки.
Спасибо, с уважением Александр.
04.07.2012 19:38:11
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #50
RE: Ваша форма "Добавить комментарий к теме:"
По первому пункту - можно было посмотреть, как это было реализовано в исходном коде любой нашей странички.
Делается это просто:
Код:
<table border="0" width="555">
<tr>
  <td>
   <hr>
   <div style="border: 2px solid Cornflowerblue; padding:4px; border-radius:5px;">
    Тут код вывода комментариев
   </div>
  </td>
</tr>
</table>

Для того, чтобы установить пароль используйте код:
Код:
session_start();

if (isset($_POST[admin_pass])) {
    if ($_POST[admin_pass]=="Ваш пароль") {$_SESSION[login_admin]="ok";}
}

if ($_SESSION[login_admin]!="ok") {
echo '<div align="center">';
echo "<form method=POST action='adminka.php'><b>Пароль: </b><input type=password name=admin_pass maxlength=20><input type=submit value=Ввод></form></div>";
}
else {
Содержимое файла админки
}

P.S. Доработку по поводу большого количества комментариев попробую сделать в выходные.
04.07.2012 20:08:39
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


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


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru