За последние 24 часа нас посетили 19063 программиста и 1603 робота. Сейчас ищут 1082 программиста ...

Прием большого количества переменных через POST

Тема в разделе "Прочие вопросы по PHP", создана пользователем shmarovoz, 19 дек 2011.

  1. shmarovoz

    shmarovoz Активный пользователь

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

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

    PHP:
    1. if (isset($_POST['date']))        {$date = $_POST['date']; if ($date == '') {unset($date);}}
    абсолютно нету.

    Скажите, пожалуйста, каким способом можно сделать так, чтобы все POST-переменные стали обычными переменными и сохранили свои имена?
     
  2. Denis.Y

    Denis.Y Активный пользователь

    С нами с:
    8 авг 2011
    Сообщения:
    145
    Симпатии:
    0
    Адрес:
    Россия, Самарская область
    а какая разница переменные они или всё ещё в массиве $_POST ?! всё равно от проверки на валидность не избавит.
    а чтобы не обращаться к каждой по имени и если порядок значений в массеве пост известен, то это можно сделать как-то так:

    $params = array();
    Код (Text):
    1.   foreach ($_POST[] as $postid)
    2.   {    
    3.      if (isset($postid) && !empty($postid))
    4.      {
    5.          $params[] = $postid;
    6.      }
    7.   }
     
  3. shmarovoz

    shmarovoz Активный пользователь

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

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    И? Просто переписал всё из $_POST в $data. А смысл? Можно и с $_POST работать точно также как с $data... Просто в обработчике точно также $_POST['submit'] пропускать.
    Или можешь его вообще unset-ить, если он тебе не нужен:

    unset($_POST['submit']);

    и будет в $_POST тоже самое, что и в твоём $data.
    А можешь в самой форме в кнопке не указывать атрибут name - у тебя тогда и изначально в массиве $_POST не будет элемента этого:

    <input type="submit" value="Отправить" />

    Форма отправиться точно также, а лишнего элемента в массиве $_POST, соответствующего этой кнопке - не будет.