Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2006-10-01 11:09:44

coordinator
Гость

Проблема с Easy Poll

Была рабочая установка с 1.1.3
Ее неправильно обновил до 1.2.13 и она полетела.
Ставлю с бекап скрипта и базы, не может создавать топики, хотя сообщения могу оставлять...
Тот же бекап на виртуальном хосте, все работает!
Ставлю нулевую на локалхосте, все работает, как только Easy Poll ставлю, перестает темы создавать.
Пишет:

Error: Unable to create topic.

#2 2006-10-01 13:36:25

SDTux
Гость

Re: Проблема с Easy Poll

Может права где косячатся...

#3 2006-10-02 14:16:34

Zevs
Гость

Re: Проблема с Easy Poll

Unable to create topic - где-то запрос к БД неверный. Включи отладку - будет яснее.

#4 2006-10-04 19:48:51

coordinator
Гость

Re: Проблема с Easy Poll

Zevs пишет:

Unable to create topic - где-то запрос к БД неверный. Включи отладку - будет яснее.

Извините, я только начал изучать работу с локальным сервером.
Мне нужно запустить в режиме отладки обработчик php или MySQL?

#5 2006-10-05 04:13:16

hcs
Гость

Re: Проблема с Easy Poll

Форум. include/common.php расскоментируй строки:
//define('PUN_DEBUG', 1);
и
//define('PUN_SHOW_QUERIES', 1);
они в самом начале после GNUGPL

#6 2006-10-05 11:31:53

coordinator
Гость

Re: Проблема с Easy Poll

An error was encountered

File: C:\data\forum\post.php
Line: 288

PunBB reported: Unable to create topic 

Database reported: Field 'question' doesn't have a default value (Errno: 1364) 

Failed query: INSERT INTO topics (poster, subject, posted, last_post, last_poster, forum_id) VALUES('Xenon', 'Ntvf', 1160036968, 1160036968, 'Xenon', 4)

#7 2006-10-07 17:47:47

rec
Гость

Re: Проблема с Easy Poll

попробуй сделать ALTER TABLE `forum_topics` CHANGE `question` `question` VARCHAR(255) NULL DEFAULT '0'
ALTER TABLE `forum_topics` CHANGE `yes` `yes` VARCHAR(30) NULL DEFAULT '0'
ALTER TABLE `forum_topics` CHANGE `no` `no` VARCHAR(30) NULL DEFAULT '0'
найти подобный строки заменить на

            // Create the topic

            $new_tid = $db->insert_id();
            $db->query('INSERT INTO ' . $db->prefix . 'polls (voters, pollid, options, ptype) VALUES("0", '.$new_tid.', \'' . $db->escape(serialize($option)) . '\', ' . $ptype . ')') or error('Unable to create poll', __FILE__, __LINE__, $db->error());

#8 2007-03-12 00:49:51

all_life
Гость

Re: Проблема с Easy Poll

Привет всем (первый раз сюда пишу, хоть читаю уже с пол года).
Как раз в середине лета поднял форум на punbb, черт меня дернул smile smile smile
-
А форум - выжил... и даже развился. Теперь отступать поздно. Проблем было много, но решаемые. Программист я почти никакой, но внимательности для интегрирования модулей хватает.
-
И конечно самые важные модули - "личка", "голосование" (easy poll 1.1.3 - с ним собственно и проблема), "галерея"(простая, но людям нравится).
-------------------
СУТЬ ВОПРОСА:
Как я понял из рядя тем Easy poll 1.1.3 вещь весьма проблемная... Хотя по началу все работало просто прекрасно.
Вот здесь на вашем форуме написано:
http://punbb.ru/viewtopic.php?id=675
следующее:

coordinator пишет:
Px пишет:

Плюс до сих пор оно не научилось работать с MySQL5....

Версия 1.1.3 у меня проблема с MySQL 5.0.24a-community-nt . А вот с MySQL 5.0.18-max-log на Jino-net все нормально.
Единственный баг, время от времени отображается только первое сообщение голосования. Нужно обновлять страницу.
Дописал как в viewpool рейтинг, лс, перенос. Вполне нормально

-
Собственно он и сломался при переходе на mysql 5.0.27 А именно перестали поститься опросы. Все старые, ранее созданные видны прекрасно. При попытке создать новый опрос тоже все открывается. Поля заполняются... И при нажатии "Отправить" выдается
"Error: Unable to create topic." sad
После чего либо появляется пустая тема-битая ссылка, либо вообще ничего не появляется, естественно после такого сообщения.
-
(Кстати я проверил, с easy poll +2.0 (который еще французский чуток) таже фигня, да еще и БД не совместима).
-
Вот и думаю - хоть на mysql 4 переходи... Но ИМХО - это как-то не правильно...
Камрады, может кто-нибудь знает, из-за чего такой хитрый вещь происходит??? А лучше чего там доправить надо в опросе, чтоб с 5 мускулом он подружился. Буду весьма признателен за подсказку, ведь наверняка не я один мучаюсь.
-
Спасибо за ту большую работу, которую вы тут делаете.

#9 2007-03-12 05:13:32

hcs
Гость

Re: Проблема с Easy Poll

2. Укажите данные PUN_DEBUG (об этом читайте фак)

#10 2007-03-14 17:17:46

all_life
Гость

Re: Проблема с Easy Poll

В общем так.
База легко переносится между mysql 5.0.27 и mysql 4.1 (туда и обратно). Несколько раз переносил уже для чистоты эксперимента. И в том и в другом варианте все функции форума работают, кроме голосования (Easy Poll 1.1.3) с версией mysql 5:
-
Вхожу в "Создать новый опрос" корректно, Выбираю 1 из 3 типов опроса корректно. Ввожу вопрос, варианты ответов, название темы и сам пост. Жму "Отправить"
вылезает такая штука:
-

File: D:\www\forum\poll.php
Line: 265

PunBB reported: Unable to create poll

Database reported: Field 'voters' doesn't have a default value (Errno: 1364)
Failed query: INSERT INTO phpBB2polls (pollid, options, ptype) VALUES(693, 'a:5:{i:1;s:9:\"âàðèàíò

1\";i:2;s:9:\"âàðèàíò 2\";i:3;s:9:\"âàðèàíò 3\";i:4;s:9:\"âàðèàíò 4\";i:5;s:9:\"âàðèàíò 5\";}', 1)

-
(кракозябрами это русские буквы в вариантах ответа, они потом нормальные получаются, если получается сам опрос...)
-
После чего в списке тем появляется соответствующая тема, но при попытке в нее зайти говорит:
"Неверный запрос. Ссылка, по которой вы пришли неверная или устаревшая"
--------------------------------------------
При тех же условиях и работе на mysql 4 все корректно размещается и опрос работает
по кнопке "отправить" отладчик выводит:

0.00353    SELECT u.*, g.*, o.logged, o.idle FROM phpBB2users AS u INNER JOIN phpBB2groups AS g ON

u.group_id=g.g_id LEFT JOIN phpBB2online AS o ON o.user_id=u.id WHERE u.id=2

0.00158    UPDATE phpBB2online SET logged=1173709670 WHERE user_id=2

0.00186    SELECT * FROM phpBB2online WHERE logged<1173709370

0.00108    SELECT f.id, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics FROM

phpBB2forums AS f LEFT JOIN phpBB2forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=1) WHERE (fp.read_forum

IS NULL OR fp.read_forum=1) AND f.id=24

0.00188    INSERT INTO phpBB2topics (poster, subject, posted, last_post, last_poster, forum_id, question)

VALUES('all_life', 'Заголовок опроса', 1173709670, 1173709670, 'all_life', 24, 'Вопрос')

0.00152    INSERT INTO phpBB2polls (pollid, options, ptype) VALUES(693, 'a:5:{i:1;s:9:\"âàðèàíò

1\";i:2;s:9:\"âàðèàíò 2\";i:3;s:9:\"âàðèàíò 3\";i:4;s:9:\"âàðèàíò 4\";i:5;s:9:\"âàðèàíò 5\";}', 1)

0.00177    INSERT INTO phpBB2posts (poster, poster_id, poster_ip, message, hide_smilies, posted, topic_id)

VALUES('all_life', 2, '10.37.20.111', 'Сообщение\nПроверка отправки голосования на mysql 4.1', '0', 1173709670,

693)

0.00167    UPDATE phpBB2topics SET last_post_id=25221 WHERE id=693

0.00268    SELECT id, word FROM phpBB2search_words WHERE word

IN('сообщение','проверка','отправки','голосования','mysql','4.1','заголовок','опроса')

0.00360    INSERT INTO phpBB2search_matches (post_id, word_id, subject_match) SELECT 25221, id, 0 FROM

phpBB2search_words WHERE word IN('сообщение','проверка','отправки','голосования','mysql','4.1')

0.00252    INSERT INTO phpBB2search_matches (post_id, word_id, subject_match) SELECT 25221, id, 1 FROM

phpBB2search_words WHERE word IN('заголовок','опроса')

0.00286    SELECT COUNT(id), SUM(num_replies) FROM phpBB2topics WHERE moved_to IS NULL AND forum_id=24

0.00311    SELECT last_post, last_post_id, last_poster FROM phpBB2topics WHERE forum_id=24 AND moved_to IS NULL

ORDER BY last_post DESC LIMIT 1

0.00182    UPDATE phpBB2forums SET num_topics=50, num_posts=1561, last_post=1173709670, last_post_id=25221,

last_poster='all_life' WHERE id=24

0.00175    UPDATE LOW_PRIORITY phpBB2users SET num_posts=num_posts+1, last_post=1173709670 WHERE id=2

-----------------------------------
Опросы, созданные в mysql 4 легко просматриваются и работают в mysql 5.
-
Как я понял, какой-то трабл с полем voters в таблице phpbb2poll (это у меня префикс такой одиозный - он не имеет отношения к одноименному форуму smile ) именно в момент создания опроса.
-
Таблица ...poll по дампу имеет вид:

DROP TABLE IF EXISTS phpbb2polls;
CREATE TABLE `phpbb2polls` (
  `id` int(11) NOT NULL auto_increment,
  `pollid` int(11) NOT NULL default '0',
  `options` longtext NOT NULL,
  `voters` longtext NOT NULL,
  `ptype` tinyint(4) NOT NULL default '0',
  `votes` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM /*!40101 DEFAULT CHARSET=utf8 */;

-
Строки в poll.php: (хотя я его не модифицировал)

264 $new_tid = $db->insert_id();
265            $db->query('INSERT INTO ' . $db->prefix . 'polls (pollid, options, ptype) VALUES(' . $new_tid . ', \'' . $db->escape(serialize($option)) . '\', ' . $ptype . ')') or error('Unable to create poll', __FILE__, __LINE__, $db->error());

-------------------------
В общем не понимаю, почему 4-й mysql все ест нормально, а 5-й нет... sad
(баг этот проявляется у меня на версиях форума 1.2.12 и 1.2.14 (если это, конечно существенно)).

Редактировался all_life (2007-03-14 17:32:36)

#11 2007-03-14 18:11:23

Slavik
Гость

Re: Проблема с Easy Poll

Глупый мод, надо другой искать

#12 2007-03-14 18:31:16

hcs
Гость

Re: Проблема с Easy Poll

Ну поле voters не должно быть пустое, а в запросе оно не заполняется, тоесть принимает значение NULL, а это противоречит структуре таблицы. Надо либо изменить запрос, вставляя туда это поле, либо изменить структуру таблицы, сделав для поля voters DEFAULT "", например.

#13 2007-03-15 14:15:42

all_life
Гость

Re: Проблема с Easy Poll

Slavik пишет:

Глупый мод, надо другой искать

Ну, других-то фактически нет. Да и на нем уже сильно большая база образовалась. Нельзя же ее теперь так взять и сбросить... Тем более никаких проблем с этим опросом, за исключением описанной, у меня не было.
-
hcs, большое спасибо за ответ. Вот только, извиняюсь конечно за навязчивость, как бы мне так

hcs пишет:

изменить запрос, вставляя туда это поле

или

hcs пишет:

изменить структуру таблицы, сделав для поля voters DEFAULT ""

учитывая что мои знания с синтаксисе команд mysql и php хоть и не совсем нулевые, но все же к этому самому нулю стремящиеся sad
собственно, как будет синтаксис - то выглядеть?
-
т.е. проблема - как это написать.
-
Есть у меня предположение, что, например надо в дампе заменить
`voters` longtext NOT NULL,
на
`voters` longtext NOT NULL default "",
(по образцу соседних полей, там правда цифра в апострофах, а не в кавычках... но и поля не текстовые...) Или это будет не правильно?
-
Лучше, конечно, изменить запрос  в poll.php. Но как подступиться к запросам на php я вообще не знаю sad
Может можно привести какой-нибудь пример, как это должно выглядеть?

Редактировался all_life (2007-03-15 15:23:56)

#14 2007-03-15 15:03:01

hcs
Гость

Re: Проблема с Easy Poll

В твоём случае проще изменить дефолтовое значение для поля, при помощи phpMyAdmin
Только никаких гарантий, неизвестно как себя поведёт мод с такими изменениями. Это не страшно, но могут быть и сюрпризы.

#15 2007-03-15 15:25:31

all_life
Гость

Re: Проблема с Easy Poll

-------------------
-------------------

P.S. Час спустя.
Все, ура! Я его победил. Спасибо за направление мысли в нужное русло.
-
Может решение и не совсем корректно, но оно помогло:
(с базой данных, кстати нифига не проканало smile )
так вот, я в файле poll.php из строки 265:
$db->query('INSERT INTO ' . $db->prefix . 'polls (pollid, options, ptype) VALUES(' . $new_tid . ', \'' . $db->escape(serialize($option)) . '\', ' . $ptype . ')') or error('Unable to create poll', __FILE__, __LINE__, $db->error());
убрал:
or error('Unable to create poll', __FILE__, __LINE__, $db->error())
осталось:
$db->query('INSERT INTO ' . $db->prefix . 'polls (pollid, options, ptype) VALUES(' . $new_tid . ', \'' . $db->escape(serialize($option)) . '\', ' . $ptype . ')');-
И теперь, не смотря на полное отсутствие работы с полем "voters", просто не вылезает сообщение об ошибке. В результате скрипт спокойно продолжает работать до конца и создает  корректный опрос smile smile smile
-
...а с этим полем (voters) опрос вообще не работает... видимо на будущие разработки какой-то запас.

Редактировался all_life (2007-03-15 15:28:36)

#16 2007-03-17 02:12:02

all_life
Гость

Re: Проблема с Easy Poll

Здравствуйте камрады. Категорически прошу извинить меня за мой предыдущий пост... Дело в том что там написан полный бред. (удалять я его не стал, дабы дурь видна была).
Дело в том, что я так припарился с этим опросом, что забыл в очередной раз сменить версию mysql с 4 на 5. И естественно все работало(на 4 - то порядок полный).
Когда 5 таки поставил - все опять переклинило sad
Так же я был не прав по поводк поля "voters" в таблице опроса (<префикс>polls). Это поле как раз таки самое важное и хранит результаты ответов (конечно если они есть).
-
Однако помог совет товарища hcs, за что ему огромное человеческое спасибо, и сейчас напишу какой хитрый вещь я обнаружил!
(кстати, иначе чем багом mysql 5.0.27 это не назовешь)
-
Дело в том, что я добавил дефолтное значение полям `voters` longtext NOT NULL и `votes` longtext NOT NULL
-
Я открыл файл дампа (его нужный кусок приведен выше на 5 сообщений) и изменил строки:

`voters` longtext NOT NULL,
`ptype` tinyint(4) NOT NULL default '0',
`votes` longtext NOT NULL,

на

`voters` longtext NOT NULL default '',
`ptype` tinyint(4) NOT NULL default '0',
`votes` longtext NOT NULL
default '',

-
Это, кстати, не так - то просто сделать smile Ни один редактор из имевшихся в наличии (ни блокнот, ни фрегат, ни тотал командер, ни тем более остальные навороченные ворды) не смог сохранить этот файл не повредив (не то кодировки сбиваются, ни то переносы какие-то или служебные символы возникают). А DOS тупо сказал - что с файлом 30 мегабайт работать не будет...
Только Far выручил smile (хоть это все к делу и мало относится).
-
Залив дамп в базу я получил прекрасно работающий опрос на mysql 5 !!! smile
-
Но вот какой трабл:
При снятии очередного дампа, этих "default '' " в нем опять не образовалось! mad mad
т.е. выходит что mysqldump.exe не корректно снимает сценарий восстановления! Естественно залив этот, только что снятый, дамп обратно - получаем отвалившейся опрос... Т.о. если каждый раз перед восстановлением или переносом подправлять вручную дамп - то опрос будет работать (хороше хоть необходимость восстановления или переноса возникает очень редко). Кстати инсталлер easy poll 1.1.3 изначально создает неправильно эту таблицу и поэтому сразу после установки отказывается работать в mysql 5. (у меня теперь уже все работает smile )
-
Написать в скрипте poll.php так, что-бы каждый раз при создании очередного опроса полям voters и votes присваивались пустые значения я ниасилил, хоть и пытался. Видимо не хватает важной части мозга...
-
Кстати, к слову, очень хороший опрос и во всем остальном не подводил, и народ его любит (пользователи, в смысле)...
==========
Еще возникла небольшая проблема с приватами. Но ее я опишу в подобающем месте форума и не сегодня, а то 2 часа ночи уже и пиво кончилось...

Редактировался all_life (2007-03-17 02:17:09)

#17 2007-03-17 10:58:17

niikto
Гость

Re: Проблема с Easy Poll

а в mySQL4 то намано экспортируется? или тоже коряво? или не проверял?

#18 2007-03-17 22:01:34

all_life
Гость

Re: Проблема с Easy Poll

В mySQL4 вообще никаких проблем.
Все прекрасно работает. При снятии дампа "default ' '  " в сценарии естественно тоже не появляется. Но это не мешает ему работать, после применения такого дампа. Пароблема именно с mysql 5 - он почему-то не хочет работать с этими "longtext" полями, пока для них не установлены дефолтные значения.
-
Т.е. если экспортировать из 5 в 4 то ничего в базе править не придется - все будет работать.

#19 2007-03-18 06:21:14

hcs
Гость

Re: Проблема с Easy Poll

all_life, а ты не пробывал дампы снимать phpMyAdmin'ом а не  mysqldump.exe ?

#20 2007-03-19 15:41:26

all_life
Гость

Re: Проблема с Easy Poll

Неа, не пробовал.
Я посмотрел на это чудо современной техники (phpMyAdmin). Чуть голову не сломал пытаясь постичь принцип его настройки и работы. Решил отложить разборки с ним на отдаленное будущее smile smile smile

#21 2007-03-25 23:43:24

niikto
Гость

Re: Проблема с Easy Poll

гыгы) - а ведь он для нубов!

#22 2007-03-30 15:32:10

all_life
Гость

Re: Проблема с Easy Poll

niikto пишет:

гыгы) - а ведь он для нубов!

Не исключено smile
-
Я еще более изящное решение нашел для опроса.
вместо

`voters` longtext NOT NULL,
`ptype` tinyint(4) NOT NULL default '0',
`votes` longtext NOT NULL,

написать в базе

`voters` longtext default NULL,
`ptype` tinyint(4) NOT NULL default '0',
`votes` longtext default NULL,

т.о. выходит, что значение не NULL для этих полей не критично.
Опрос продолжает корректно работать. И при этом так же корректно с базы снимается дамп. И соответственно применяется корректно при переносе/восстановлении (в MySql-5).

Редактировался all_life (2007-03-30 15:33:23)

#23 2007-04-02 07:52:50

2maru
Гость

Re: Проблема с Easy Poll

какраз задался этим вопросом - спасибо тебе - попробую

#24 2008-03-22 14:36:00

De-Luxis
Гость

Re: Проблема с Easy Poll

Поставил Easy Poll + 2
терь такая вот фигушка вылазит:
Parse error: syntax error, unexpected '}' in Z:\home\forum.blitzteam.su\www\post.php on line 749
На скока я понял, дело в неправельной фигурной скобке, но я все сделал по инструкции.
Кто нить ставил этот опрос на версию 1.2.16? и нормально ли все работает?

#25 2008-03-22 15:53:28

nobody
Гость

Re: Проблема с Easy Poll

Ты где-то ошибся при установке мода. Перепроверь, все должно работать.

Подвал доски

Под управлением FluxBB. Хостинг Hostens