Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Прием большого количества переменных через POST
Форумы портала PHP.SU » » Вопросы новичков » Прием большого количества переменных через POST

Страниц (1): [1]
 

1. herotic - 19 Декабря, 2011 - 14:12:25 - перейти к сообщению
Всем привет.
Прошу помощи вот с какой ситуацией.
У меня есть форма, в которой около 70 полей. Все это отправляется обработчику и соответственно получается, что нужно принять 70 переменных.

Желания для каждой переменной делать

PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['date']))        {$date = $_POST['date']; if ($date == '') {unset($date);}}


абсолютно нету.

Скажите, пожалуйста, каким способом можно сделать так, чтобы все POST-переменные стали обычными переменными и сохранили свои имена?
2. snikers987 - 19 Декабря, 2011 - 14:15:19 - перейти к сообщению
добавь в htaccess
php_flag register_globals on

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

И если вы выполняеете только присваивание и никаких операции по провеке входящих данных, что мешает в программе использовать сразу суперглобальный массив POST?
3. DeepVarvar - 19 Декабря, 2011 - 14:33:23 - перейти к сообщению
Фррррр....
PHP:
скопировать код в буфер обмена
  1. $fields = array("a","b","c","d"...,"z");
  2. $stored = array();
  3. foreach ($fields as $field)
  4.   if (isset($_POST[$field]))
  5.     $stored[$field] = $_POST[$field];
  6.  
  7. print_r($stored);
4. DlTA - 19 Декабря, 2011 - 14:41:33 - перейти к сообщению
herotic пишет:
так, чтобы все POST-переменные стали обычными переменными и сохранили свои имена?



но лучше все же давать обдуманные имена, обработку которых можно автоматизировать
5. DeepVarvar - 19 Декабря, 2011 - 14:50:41 - перейти к сообщению
DlTA, а проверять что не надо? Закатив глазки
6. DlTA - 19 Декабря, 2011 - 15:14:33 - перейти к сообщению
DeepVarvar пишет:
а проверять что не надо?
проверять что?
7. snikers987 - 19 Декабря, 2011 - 15:35:44 - перейти к сообщению
DeepVarvar пишет:
Фррррр....
PHP:
скопировать код в буфер обмена
  1. $fields = array("a","b","c","d"...,"z");
  2. $stored = array();
  3. foreach ($fields as $field)
  4.   if (isset($_POST[$field]))
  5.     $stored[$field] = $_POST[$field];
  6.  
  7. print_r($stored);


Смысл кода? Перечислять имена полей всеравно нужно, и в чем разница между $_POST и $stored ? Тогда уже лучше перебрать массив $_POST
PHP:
скопировать код в буфер обмена
  1.  
  2. $data = array();
  3. foreach($_POST as $key => $value){
  4.     if($key == 'submit') continue; // пропускаем кнопку, естественно если имя кнопки submit
  5. $data[$key] = $value;
  6. }
  7.  
8. herotic - 19 Декабря, 2011 - 15:46:04 - перейти к сообщению
snikers987 пишет:

PHP:
скопировать код в буфер обмена
  1.  
  2. $data = array();
  3. foreach($_POST as $key => $value){
  4.     if($key == 'submit') continue; // пропускаем кнопку, естественно если имя кнопки submit
  5. $data[$key] = $value;
  6. }
  7.  


Спасибо большое! То, что нужно Улыбка
9. DeepVarvar - 19 Декабря, 2011 - 22:11:22 - перейти к сообщению
snikers987 пишет:
Смысл кода?
Смысл кода в его универсальности вне зависимости от получаемых данных.
Это всего лишь простейший пример. Но его уже можно вытащить в отдельный метод, который будет получать в качестве аргументов массив списка проверяемых ключей, а так же возможные доп-параметры.
Это дает возможность обвешивать его различными типами проверки.
Так же не требуется перебирать весть массив $_POST - идет перебор только заявленных ключей для данного контекста бизнес-логики.

Я не прав?
10. snikers987 - 20 Декабря, 2011 - 14:39:10 - перейти к сообщению
DeepVarvar пишет:
snikers987 пишет:
Смысл кода?
Смысл кода в его универсальности вне зависимости от получаемых данных.
Это всего лишь простейший пример. Но его уже можно вытащить в отдельный метод, который будет получать в качестве аргументов массив списка проверяемых ключей, а так же возможные доп-параметры.
Это дает возможность обвешивать его различными типами проверки.
Так же не требуется перебирать весть массив $_POST - идет перебор только заявленных ключей для данного контекста бизнес-логики.

Я не прав?


В целом прав, но не прав для данного случая.
11. DeepVarvar - 20 Декабря, 2011 - 14:45:15 - перейти к сообщению
Таки все случаи являются "данными". Иначе бы код сайта умещался в одну строку:
12. snikers987 - 20 Декабря, 2011 - 14:47:25 - перейти к сообщению
DeepVarvar пишет:
Таки все случаи являются "данными". Иначе бы код сайта умещался в одну строку:


ТС хотел избежать перечисления, ему не нужна универсальность. имхо
13. LIME - 20 Декабря, 2011 - 15:05:34 - перейти к сообщению
snikers987
перебирать массив POST нельзя
таким образом проще register globals включить
другими словами так мы сможем постом передать любую переменную какую захотим
даже ту что не планировалась к передаче и если она не инициализируется дальше в коде могут быть траблы
herotic пишет:
Спасибо большое! То, что нужно
нет ...вам нужен код варвара
14. snikers987 - 20 Декабря, 2011 - 15:51:51 - перейти к сообщению
LIME пишет:
snikers987
перебирать массив POST нельзя
таким образом проще register globals включить
другими словами так мы сможем постом передать любую переменную какую захотим
даже ту что не планировалась к передаче и если она не инициализируется дальше в коде могут быть траблы
herotic пишет:
Спасибо большое! То, что нужно
нет ...вам нужен код варвара


Вот об этом не подумал! Спасибо, прозрел! Радость

 

Powered by ExBB FM 1.0 RC1