Форма отправки

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
21Vitaliy
phpBB 1.2.0
Сообщения: 17
Стаж: 17 лет 7 месяцев
Забанен: Бессрочно

Форма отправки

Сообщение 21Vitaliy »

Я хотел для своего форума придумать форму что-то типа отправки завки на смену ника...
Вообщем написал на основе ЛС, т.е. чтоб заявка приходила мне прям в ЛС..
Вот Что получилось:

Код: Выделить всё

  <div id="wrapcentre"><br>
<div id="pagecontent">

<form action="ucp.php?i=pm&mode=compose" method="post" name="postform" enctype="multipart/form-data">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
   
   <table class="tablebg" width="50%" cellspacing="1">
   <tr> 
      <th colspan="2">Оставить заявку на смену ника</th>
   </tr>
         <tr>
		<td class="row1"><b class="genmed">Получатель:</b></td>
		<td class="row2">
			<input type="hidden" name="address_list[u][2]" value="to" />					<span style="display: block; float: left;" class="nowrap genmed"><strong>
			<a href="./memberlist.php?mode=viewprofile&u=2" style="color: #FF0000;" class="username-coloured">BEST_XP</a></strong>&nbsp;</span>
				</td>
	</tr>
      <tr> 
         <td class="row1" width="35%"><b class="genmed">Старый ник</b></td>
         <td class="row2"><input class="post" type="text" name="subject" size="40" tabindex="2" value="" /></td>
               </tr>
      <tr>
<td class="row1" valign="top"><b class="genmed">Новый ник</b><br /></td>
      <td class="row2"><textarea class="post" name="message" rows="0.5" cols="33" tabindex="2"></textarea></td>
   </tr>
		<td class="cat" colspan="2" align="center">
			&nbsp; <input class="btnmain" type="submit" accesskey="s" tabindex="6" name="post" value="Отправить" />
		</td>
	</tr>
   </table>

</tr>
</table>
<input type="hidden" name="creation_time" value="1235404737" />
<input type="hidden" name="form_token" value="117bf9752627e1a2c031b51655e2f4ecbcc70e39" />
</form>
</div>
Только после того как нажимаю отправить, вылазит новое окно ЛС, тоесть нужно потвердить отправку ещё раз, но уже через форумовскую форму отправки ЛС...

Тогда я понял что проблема в этом:
<div id="wrapcentre"><br>
<div id="pagecontent">

<form action="ucp.php?i=pm&mode=compose" method="post" name="postform" enctype="multipart/form-data">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>

<table class="tablebg" width="50%" cellspacing="1">
<tr>
<th colspan="2">Оставить заявку на смену ника</th>
</tr>
<tr>
<td class="row1"><b class="genmed">Получатель:</b></td>
<td class="row2">
<input type="hidden" name="address_list[2]" value="to" /> <span style="display: block; float: left;" class="nowrap genmed"><strong>
<a href="./memberlist.php?mode=viewprofile&u=2" style="color: #FF0000;" class="username-coloured">BEST_XP</a></strong>&nbsp;</span>
</td>
</tr>
<tr>
<td class="row1" width="35%"><b class="genmed">Старый ник</b></td>
<td class="row2"><input class="post" type="text" name="subject" size="40" tabindex="2" value="" /></td>
</tr>
<tr>
<td class="row1" valign="top"><b class="genmed">Новый ник</b><br /></td>
<td class="row2"><textarea class="post" name="message" rows="0.5" cols="33" tabindex="2"></textarea></td>
</tr>
<td class="cat" colspan="2" align="center">
&nbsp; <input class="btnmain" type="submit" accesskey="s" tabindex="6" name="post" value="Отправить" />
</td>
</tr>
</table>

</tr>
</table>
<input type="hidden" name="creation_time" value="1235404737" />
<input type="hidden" name="form_token" value="117bf9752627e1a2c031b51655e2f4ecbcc70e39" />

</form>
</div>


Там где я выделил крассным, там должны стоят переменные, только вот проблема какие...
Буду очень благарен если кто-то поможет..
Аватара пользователя
Oleg NT
Former team member
Сообщения: 450
Стаж: 20 лет 8 месяцев
Откуда: Нижний Тагил
Поблагодарили: 11 раз

Re: Форма отправки

Сообщение Oleg NT »

21Vitaliy писал(а):<form action="ucp.php?i=pm&mode=compose"

Код: Выделить всё

<form action="{U_PM_COMPOSE}"
В php-файле при присвоении шаблонным переменным значений пишем:

Код: Выделить всё

'U_PM_COMPOSE' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose'),
21Vitaliy писал(а):<input type="hidden" name="form_token" value="117bf9752627e1a2c031b51655e2f4ecbcc70e39" />
Читаем:
Add form key
Check form key
21Vitaliy писал(а):<input type="hidden" name="creation_time" value="1235404737" />
По этому поводу я бы сказал, что value="{CREATION_TIME}", а в php пишем: 'CREATION_TIME' => time(), но вдруг в phpBB это делается как-то по-своему, кто-нибудь подскажет, а я сейчас в полусонном состоянии, на скорую руку не нашел.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Форма отправки

Сообщение rxu »

В шаблоне до закрывающего тега формы вставляется лексема {S_FORM_TOKEN}, значение которой (включая скрытые поля формы) генерируется функцией add_form_key в includes/functions. В качестве параметра в принципе можно указать любое имя, но при проверке check_form_key при получении данных из этой формы надо будет использовать его же.
Это всё, больше ничего писать в шаблоне не надо.
Изображение
21Vitaliy
phpBB 1.2.0
Сообщения: 17
Стаж: 17 лет 7 месяцев
Забанен: Бессрочно

Re: Форма отправки

Сообщение 21Vitaliy »

Oleg NT писал(а):В php-файле при присвоении шаблонным переменным значений пишем
Я php файл не создавал, только html (думал что будет работать :mrgreen: )
Вы бы не могли показать примерно где его создавать, и что в нём писать для присвоении шаблонным переменным?
Vitaliy21
phpBB 1.4.2
Сообщения: 62
Стаж: 17 лет 5 месяцев
Откуда: Ukraine, Zaporozhe
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: Форма отправки

Сообщение Vitaliy21 »

Oleg NT писал(а):В php-файле при присвоении шаблонным переменным значений пишем

Код: Выделить всё

'U_PM_COMPOSE' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose'),
а где вы это нашли? И вообще какие php и html файлы отвечают за форму отправки лс сообщений?

Вернуться в «Для авторов (phpBB 3.0.x)»