Добрый день. Использую последнюю версию phpbb 3.0.11 совместно с модулем Portal. Хочу на главной странице разместить голосование, которое добавлено в одной из тем на форуме (только одного голосование, т.к. на главной странице будет что-то типа голосование месяца).
Решил взять (другое ничего в голову не пришло) статический html-код голосования из предварительно созданной темы и прописать в html-файле шаблонов этот код (периодически раз в месяц готов вручную его менять, когда это будет необходимо). Всё практически получилось... пока я не наткнулся на следующий код в голосовании:
<input name="form_token" value="5f321a9162bf924208d2b44a292d7ccaedfd0d68" type="hidden">
С неправильным (пустым) form_token система, конечно же, говорит об ошибке передаваемых параметров... оно и понятно!
Перерыл весь код, никак не смог выцепить место как формируется этот form_token, - при отладке всё промежуточные переменные пустые, и нигде не получилось выяснить, как этот form_token формируется. Создатели, конечно, неплохо защитили от таких вещей свой форум, но всё же хотелось бы решить данную проблему. Может кто сталкивался? Поиск по форуму и в Интернете ничего не дал. Заранее спасибо за внимание!
Как добавить СТАТИЧЕСКОЕ голосование, помогите!!!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
Balandin
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 13 лет 3 месяца
- Благодарил (а): 1 раз
-
rxu
- phpBB Guru

- Сообщения: 17273
- Стаж: 20 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 633 раза
- Поблагодарили: 2413 раз
Re: Как добавить СТАТИЧЕСКОЕ голосование, помогите!!!
Balandin
includes/functions.php function add_form_key()
includes/functions.php function add_form_key()
-
Balandin
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 13 лет 3 месяца
- Благодарил (а): 1 раз
Re: Как добавить СТАТИЧЕСКОЕ голосование, помогите!!!
Я эту add_form_key вдоль и поперёк перелопатил!!! Не пойму, что это за параметр формы такой - $form_name???
В комментариях формы написано, что : $form_name The name of the form;
И как узнать имя моей формы?
Я же говорю, отлаживал обычное голосование, как разработчики сделали, я не знаю, но даже на обычном голосовании в теме этот form_name ПУСТОЙ!!!
В комментариях формы написано, что : $form_name The name of the form;
И как узнать имя моей формы?
Я же говорю, отлаживал обычное голосование, как разработчики сделали, я не знаю, но даже на обычном голосовании в теме этот form_name ПУСТОЙ!!!
-
rxu
- phpBB Guru

- Сообщения: 17273
- Стаж: 20 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 633 раза
- Поблагодарили: 2413 раз
Re: Как добавить СТАТИЧЕСКОЕ голосование, помогите!!!
Вообще, он задается вами, его же надо использовать для проверки в функции check_form_key() (см. описание). Стандартное имя формы голосования - 'posting'. Оно в принципе и не надо, достаточно скопировать лексемы из viewtopic_body.html: {S_FORM_TOKEN} и {S_HIDDEN_FIELDS}, если код, генерирующийопрос, соответствует стандартному из viewtopic.php.Balandin писал(а):Не пойму, что это за параметр формы такой - $form_name?
-
Balandin
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 13 лет 3 месяца
- Благодарил (а): 1 раз
Re: Как добавить СТАТИЧЕСКОЕ голосование, помогите!!!
Я PHPBB стал пользоваться недавно, поэтому, возможно, я что-то не так понимаю... поправьте ход моих мыслей, пожалуйста, если мой действия не верны. HTML-код голосования, который сформировал phpbb (http://www.xxx.ru/viewtopic.php?t=20&f= ... c53ddb3079) я скопировал и вставил в файл мода портала (разместил в файле шаблона /www/styles/prosilver/template/portal/portal_body.html нижестоящий код ):
Соответственно вместо
я должен был разместить {S_FORM_TOKEN} {S_HIDDEN_FIELDS}, но при открытии и просмотре сформировавшегося html-кода, там ПУСТО. Хотя, если посмотрите код, {SID} сформировался, а вот {S_FORM_TOKEN} {S_HIDDEN_FIELDS} нет.
Из-за чего это могло произойти?
Код: Выделить всё
<form method="post" action="./viewtopic.php?f=23&t=20&sid={SID}">
<h2>тест голосвания</h2>
<dt><label for="vote_1">вариант 1</label></dt>
<dd style="width: auto;"><input name="vote_id[]" id="vote_1" value="1" type="radio"></dd>
<dt><label for="vote_2">вариант 2</label></dt>
<dd style="width: auto;"><input name="vote_id[]" id="vote_2" value="2" type="radio"></dd>
<dt><label for="vote_3">вариант 3</label></dt>
<dd style="width: auto;"><input name="vote_id[]" id="vote_3" value="3" type="radio"></dd>
<dd class="resultbar"><input name="update" value="Проголосовать" class="button1" type="submit"></dd>
<dd class="resultbar"><a href="./viewtopic.php?f=23&t=20&sid={SID}&view=viewpoll">Результаты голосования</a></dd>
<input name="creation_time" value="1370189529" type="hidden">
<input name="form_token" value="038b47997e28cff75b4c79184a8a6987131386c0" type="hidden">
</form>Код: Выделить всё
<input name="creation_time" value="1370189529" type="hidden">
<input name="form_token" value="038b47997e28cff75b4c79184a8a6987131386c0" type="hidden">
Из-за чего это могло произойти?
-
rxu
- phpBB Guru

- Сообщения: 17273
- Стаж: 20 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 633 раза
- Поблагодарили: 2413 раз
Re: Как добавить СТАТИЧЕСКОЕ голосование, помогите!!!
Надо в основном скрипте (portal.php, или какой он там, который использует шаблон portal_body.html) вызвать функцию, генерирующую S_FORM_TOKEN - add_form_key('posting'), чтобы значение было заполнено.
-
Balandin
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 13 лет 3 месяца
- Благодарил (а): 1 раз
Re: Как добавить СТАТИЧЕСКОЕ голосование, помогите!!!
Я тоже так думал, добавил как раз строку заполнения:
но система при обновлении страницы там где голосование выдаёт ошибку:
Общая ошибка
template->set_filenames: Empty filename specified for S_FORM_TOKEN
Мне кажется очень близко подошёл к решению вопроса... но всё никак. rxu, спасибо за участие в решении вопроса, что ещё попробовать?
Код: Выделить всё
$template->set_filenames(array(
'S_FORM_TOKEN' => add_form_key('posting'),
'body' => 'portal/portal_body.html'
));Общая ошибка
template->set_filenames: Empty filename specified for S_FORM_TOKEN
Мне кажется очень близко подошёл к решению вопроса... но всё никак. rxu, спасибо за участие в решении вопроса, что ещё попробовать?
-
rxu
- phpBB Guru

- Сообщения: 17273
- Стаж: 20 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 633 раза
- Поблагодарили: 2413 раз
Re: Как добавить СТАТИЧЕСКОЕ голосование, помогите!!!
Это нонсенс, посмотрите на код функции.Balandin писал(а):'S_FORM_TOKEN' => add_form_key('posting'),
Просто добавьте
add_form_key('posting'); перед $template->set_filenames.-
Balandin
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 13 лет 3 месяца
- Благодарил (а): 1 раз
Re: Как добавить СТАТИЧЕСКОЕ голосование, помогите!!!
Не знаю как Вас и благодарить
Тема закрыта, всё работает!!! Спасибо большое!

