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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
herotic
Отправлено: 19 Декабря, 2011 - 14:12:25
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2011  


Помог: 0 раз(а)




Всем привет.
Прошу помощи вот с какой ситуацией.
У меня есть форма, в которой около 70 полей. Все это отправляется обработчику и соответственно получается, что нужно принять 70 переменных.

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

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


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

Скажите, пожалуйста, каким способом можно сделать так, чтобы все POST-переменные стали обычными переменными и сохранили свои имена?
 
 Top
snikers987
Отправлено: 19 Декабря, 2011 - 14:15:19
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




добавь в htaccess
php_flag register_globals on

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

И если вы выполняеете только присваивание и никаких операции по провеке входящих данных, что мешает в программе использовать сразу суперглобальный массив POST?

(Отредактировано автором: 19 Декабря, 2011 - 14:18:47)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
DeepVarvar Супермодератор
Отправлено: 19 Декабря, 2011 - 14:33:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Фррррр....
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);
 
 Top
DlTA
Отправлено: 19 Декабря, 2011 - 14:41:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




herotic пишет:
так, чтобы все POST-переменные стали обычными переменными и сохранили свои имена?



но лучше все же давать обдуманные имена, обработку которых можно автоматизировать
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Декабря, 2011 - 14:50:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




DlTA, а проверять что не надо? Закатив глазки
 
 Top
DlTA
Отправлено: 19 Декабря, 2011 - 15:14:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




DeepVarvar пишет:
а проверять что не надо?
проверять что?
 
 Top
snikers987
Отправлено: 19 Декабря, 2011 - 15:35:44
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




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.  


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
herotic
Отправлено: 19 Декабря, 2011 - 15:46:04
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2011  


Помог: 0 раз(а)




snikers987 пишет:

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


Спасибо большое! То, что нужно Улыбка
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Декабря, 2011 - 22:11:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




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

Я не прав?
 
 Top
snikers987
Отправлено: 20 Декабря, 2011 - 14:39:10
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




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

Я не прав?


В целом прав, но не прав для данного случая.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
DeepVarvar Супермодератор
Отправлено: 20 Декабря, 2011 - 14:45:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Таки все случаи являются "данными". Иначе бы код сайта умещался в одну строку:
 
 Top
snikers987
Отправлено: 20 Декабря, 2011 - 14:47:25
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




DeepVarvar пишет:
Таки все случаи являются "данными". Иначе бы код сайта умещался в одну строку:


ТС хотел избежать перечисления, ему не нужна универсальность. имхо


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
LIME
Отправлено: 20 Декабря, 2011 - 15:05:34
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




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



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




LIME пишет:
snikers987
перебирать массив POST нельзя
таким образом проще register globals включить
другими словами так мы сможем постом передать любую переменную какую захотим
даже ту что не планировалась к передаче и если она не инициализируется дальше в коде могут быть траблы
herotic пишет:
Спасибо большое! То, что нужно
нет ...вам нужен код варвара


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


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB