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

Сообщений: 6
У нас с: Jul 2012
Сообщение: #101
RE: Ваша форма "Добавить комментарий к теме:"
Здравствуйте уважаемый Admin.
Снова нужна Ваша помощь. При переходе хостинга, на котором находится мой сайт на новое оборудование, у меня обрушилась половина сайта. Заново пришлось делать каталог сайта, теперь переделываю форму добавления комментариев с Вашим скриптом. При создании таблиц не могу установить галочку в поле id напротив AUTO_INCREMENT, выдаётся ошибка "#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key". Почему это происходит?
Вообще в инете видел скрипты, где таблицы импортируются в mysql при помощи файла db.sql уже готовой таблицы. Можно ли "прикрутить" подобный файл к Вашему скрипту?
С уважением Владимир
06.02.2013 22:05:37
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #102
RE: Ваша форма "Добавить комментарий к теме:"
Попробуйте сначала сделать поле id первичным ключом (PRIMARY KEY), а уже потом добавить AUTO_INCREMENT.
06.02.2013 22:22:45
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #103
RE: Ваша форма "Добавить комментарий к теме:"
Спасибо, помогло, но только когда изменил еще в некоторых местах [mess_url] на [full_url].
(Последний раз сообщение было отредактировано 07.02.2013 в 02:53:59, отредактировал пользователь Winston.)
07.02.2013 01:25:05
Найти все сообщения Цитировать это сообщение
Vladimir1709 Не на форуме
Рядовой
*

Сообщений: 6
У нас с: Jul 2012
Сообщение: #104
RE: Ваша форма "Добавить комментарий к теме:"
(06.02.2013 22:22:45)Admin писал(а):  Попробуйте сначала сделать поле id первичным ключом (PRIMARY KEY), а уже потом добавить AUTO_INCREMENT.

А как сделать поле id первичным ключом (PRIMARY KEY)? Опишите пожалуйста по подробней.
07.02.2013 16:30:24
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #105
RE: Ваша форма "Добавить комментарий к теме:"
Кликните по значку "Первичный" напротив поля id:

[Изображение: primary.png]
07.02.2013 18:53:11
Найти все сообщения Цитировать это сообщение
Vladimir1709 Не на форуме
Рядовой
*

Сообщений: 6
У нас с: Jul 2012
Сообщение: #106
RE: Ваша форма "Добавить комментарий к теме:"
Снова возник вопрос, на этот раз с формой модерации комментариев. Установил форму модерации в админке, всё сделал по вашей инструкции, но при модерации новых комментов, при открытии админки постоянно появляется надпись "Новых комментов нет!" Подскажите пожалуйста, где может быть ошибка?
21.05.2013 16:06:22
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #107
RE: Ваша форма "Добавить комментарий к теме:"
А в базе то новые комментарии появляются?
Если в базе новые комментарии появляются, то следует обратить внимание на поле moderation. Если в moderation стоит 1, то значит, у Вас комментарии не проходят модерацию и сразу публикуются.
21.05.2013 19:24:00
Найти все сообщения Цитировать это сообщение
stilbig Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Jun 2013
Сообщение: #108
RE: Ваша форма "Добавить комментарий к теме:"
Добрый день, я недавно установил вашу форму комментариев, однако немогу разобраться как добавить доп поля.
Хочу сделать, чтобы пользователь указывал e-mail, и в админке я его видел.
А еще лучше, чтобы дубликат комментария отправлялся на мою почту.
Также интересует как сделть древовидные комментарии.
Заранее спасибо.
19.06.2013 14:53:25
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #109
RE: Ваша форма "Добавить комментарий к теме:"
По порядку.
Для начала добавьте в MySQL базу в таблицу comment дополнительное поле email (тип VARCHAR (50)).
Далее в форму отправки комментария добавьте поле для того чтобы пользователь мог указать e-mail:
Код:
echo '<b>Ваше имя: </b><input type="text" name="user_email" maxlength="50"
value="'.$_SESSION[comment_user_email].'" required>';

Далее обрабатываем полученный e-mail и пишем его в базу. Для этого замените код:
Код:
if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
if (get_magic_quotes_gpc()=="0") {
  $_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  $_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
  $result = mysql_query("insert into comment (date,theme,login,message)
  values ('".date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  $_SESSION[send]='Комментарий принят и ожидает модерации.';
  $_SESSION[comment_mess_login]='';
  $_SESSION[comment_user_text]='';
  header("Location: $_SESSION[mess_url]#last");
  exit;
}

на такой:
Код:
if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
$_SESSION[comment_user_email]=$_POST[user_email];
if (get_magic_quotes_gpc()=="0") {
  $_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  $_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
  $_SESSION[comment_user_email]=mysql_real_escape_string($_SESSION[comment_user_email]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);
$_SESSION[comment_user_email]=htmlspecialchars($_POST[user_email]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
  $result = mysql_query("insert into comment (date,theme,login,message,email)
  values ('".date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."','".$_SESSION[comment_user_email]."')");
  $_SESSION[send]='Комментарий принят и ожидает модерации.';
  $_SESSION[comment_mess_login]='';
  $_SESSION[comment_user_text]='';
$_SESSION[comment_user_email]='';
  header("Location: $_SESSION[mess_url]#last");
  exit;
}

Вытащить в админке из базы e-mail у Вас не должно составить труда.

Про отправку на почту комментариев уже писал в данной теме - http://usefulscript.ru/forum/showthread....426#pid426

Про древовидные комментарии тоже где-то есть.
19.06.2013 20:26:47
Найти все сообщения Цитировать это сообщение
stilbig Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Jun 2013
Сообщение: #110
RE: Ваша форма "Добавить комментарий к теме:"
(19.06.2013 20:26:47)Admin писал(а):  По порядку.
Для начала добавьте в MySQL базу в таблицу comment дополнительное поле email (тип VARCHAR (50)).
Далее в форму отправки комментария добавьте поле для того чтобы пользователь мог указать e-mail:
Код:
echo '<b>Ваше имя: </b><input type="text" name="user_email" maxlength="50"
value="'.$_SESSION[comment_user_email].'" required>';

Далее обрабатываем полученный e-mail и пишем его в базу. Для этого замените код:
Код:
if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
if (get_magic_quotes_gpc()=="0") {
  $_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  $_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
  $result = mysql_query("insert into comment (date,theme,login,message)
  values ('".date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  $_SESSION[send]='Комментарий принят и ожидает модерации.';
  $_SESSION[comment_mess_login]='';
  $_SESSION[comment_user_text]='';
  header("Location: $_SESSION[mess_url]#last");
  exit;
}

на такой:
Код:
if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
$_SESSION[comment_user_email]=$_POST[user_email];
if (get_magic_quotes_gpc()=="0") {
  $_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  $_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
  $_SESSION[comment_user_email]=mysql_real_escape_string($_SESSION[comment_user_email]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);
$_SESSION[comment_user_email]=htmlspecialchars($_POST[user_email]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
  $result = mysql_query("insert into comment (date,theme,login,message,email)
  values ('".date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."','".$_SESSION[comment_user_email]."')");
  $_SESSION[send]='Комментарий принят и ожидает модерации.';
  $_SESSION[comment_mess_login]='';
  $_SESSION[comment_user_text]='';
$_SESSION[comment_user_email]='';
  header("Location: $_SESSION[mess_url]#last");
  exit;
}

Вытащить в админке из базы e-mail у Вас не должно составить труда.

Про отправку на почту комментариев уже писал в данной теме - http://usefulscript.ru/forum/showthread....426#pid426

Про древовидные комментарии тоже где-то есть.

Спасибо, помогло)
20.06.2013 12:12:50
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


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


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru