VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
В общем надо в админке передать ассоциативный массив значений через форму
..так сказать в другой реквест (он в результате запроса генерируется, а не из значений формы)
в типах input->clean_array_gpc есть TYPE_ARRAY , но как его передать?
construct_hidden_code(); не срабатывает видимо, после передачи массиы оказывается пустым :\
Я посмотрела в inlinemod.php там значения преобразуют в строку-передают-преобразуют в массив... это конечно выход, но по другому, сразу массивом выходит не передашь?
if ($_REQUEST['do'] == 'main') { $pf1=array(); В общем есть большой составной из множества параметров запрос. в цикле обработки результатов запроса генерируtтся ассоциативный массив (ну и ещё много чего.)
Массив представляет собой такие записи userid1 =>sometextforuser1 userid2 =>sometextforuser2 userid3 =>sometextforuser3 ............. print_form_header('myproduct','delete'); .... construct_hidden_code('myarray', $pf1,false); print_submit_row($vbphrase['erm_del'],0,2); }
if ($_REQUEST['do'] == 'delete') { $vbulletin->input->clean_array_gpc('r',array( 'myarray'=>TYPE_ARRAY, ));
// А вот в этом цикле ничего не выводится (если аналогичное делать в предыдущем //реквесте - всё выводится нормально) foreach ($vbulletin->GPC['myarray'] AS $key=>$val) { echo '<br>key='.$key; echo '<br>val='.$val; } }
можно перед передачей преобразовать массив в строку, потом вернуть в массив, но... оно не совсем так имплодится...
Вывод значений массива до преобрзования в строку:
PHP Code:
foreach ($pf1 AS $key=>$val) { echo '<br>key='.$key; echo '<br>val='.$val; }
mad@Max, спасибо, сериализация - действительно наверное самое подходящее решение... только оно всё равно не работает :-((( Почти...
Это вообще жесть...
Вот у меня в первом реквесте идёт
PHP Code:
if ($_REQUEST['do'] == 'main')
{
..................................
...................................
print_form_header('ext_rep_manage','dodelete',true,true,'cpform3','','',false,'post'); /*я уже все возможные параметры формы перебрала*/
$pm1=serialize($pmformessages);
/*-------------------- Всё замечательно выводит результаты
foreach($pm1 AS $key=>$val)
{
echo '*Сообщение пользователю '.$key.'<br>'.$val.'<br>';
}
-------------------------------------------*/
construct_hidden_code('delrepids',$repids);
construct_hidden_code('pmformessages', $pm1);
print_input_row($vbphrase['erm_notetext'], 'notefor','', '5', '', '');
print_input_row($vbphrase['erm_notetext2'], 'notefrom','', '5', '', '');
print_input_row($vbphrase['erm_pmsender'], 'pmsender',1, '', '5', '', '');
print_submit_row($vbphrase['erm_del'],0,2);
}
..
if ($_REQUEST['do'] == 'dodelete')
{
$vbulletin->input->clean_array_gpc('r',array(
'notefor'=>TYPE_NOHTML,
'notefrom'=>TYPE_NOHTML,
'pmsender'=>TYPE_UINT,
'delrepids'=>TYPE_STR,
'pmformessages'=>TYPE_STR, //пробовала разные
));
$delrepids=explode(",",$vbulletin->GPC['delrepids']);
$pm1=unserialize($vbulletin->GPC['pmformessages']);
....
foreach($pm1 AS $key=>$val) // Не работает сволочь
{
echo '*Сообщение пользователю '.$key.'<br>'.$val.'<br>';
}
Дык вот... всё равно не работает... ругается Warning: Invalid argument supplied for foreach() (во втором реквесте)
Но прикол в том, что я это немного работать заставила... случайно.. В FF есть такой плагин - панель WebDeveloper - ну и там есть фишка "Показать параметры форм". Так вот - включаю я это отображение, жму кнопочку - и у меня всё срабатывает и все аргументы foreach устраивают.