Частичные данные в переменной $_FILES

У нас есть экран администратора, где пользователь может редактировать большое количество данных и, кроме того, имеет несколько десятков входов типа файла.

В PHP каждый входной файл вводится в суперглобальную переменную с именем $_FILES.

В моей локальной среде разработки все работает отлично, Проблема в том, что при постановке данные мы получаем частично.

Если я сохраняю одни и те же данные в staging и local, я получаю только в local полные данные, что решается тем, что когда пользователь пытается загрузить изображение, я его даже не вижу в переменной $_FILES.

Итак, мой вопрос: какое ограничение вызывает эту проблему при постановке?

У меня более или менее такие же настройки php.ini (max_post_size, max_upload_size и т. д.), и у меня нет прав на редактирование настроек в staging.

Спецификации в постановке

  • Версия сервера: Apache/2.2.15
  • PHP 5.3.29
  • CDN Акамай

Редактировать

Вывод $_FILES для запроса Jon Stirling: Я закодировал его в JSON, чтобы он был более читаемым.

Постановочный вывод:

{
  "user_guide": {
    "name": "",
    "type": "",
    "tmp_name": "",
    "error": 4,
    "size": 0
  },
  "instructionsData": {
    "name": {
      "102": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1395": {
            "image": ""
          },
          "1398": {
            "image": ""
          },
          "1401": {
            "image": ""
          },
          "1404": {
            "image": ""
          }
        }
      },
      "103": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1405": {
            "image": ""
          },
          "1408": {
            "image": ""
          },
          "1411": {
            "image": ""
          },
          "1414": {
            "image": ""
          },
          "1417": {
            "image": ""
          },
          "1420": {
            "image": ""
          },
          "1423": {
            "image": ""
          },
          "1426": {
            "image": ""
          }
        }
      },
      "105": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1428": {
            "image": ""
          }
        }
      }
    },
    "type": {
      "102": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1395": {
            "image": ""
          },
          "1398": {
            "image": ""
          },
          "1401": {
            "image": ""
          },
          "1404": {
            "image": ""
          }
        }
      },
      "103": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1405": {
            "image": ""
          },
          "1408": {
            "image": ""
          },
          "1411": {
            "image": ""
          },
          "1414": {
            "image": ""
          },
          "1417": {
            "image": ""
          },
          "1420": {
            "image": ""
          },
          "1423": {
            "image": ""
          },
          "1426": {
            "image": ""
          }
        }
      },
      "105": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1428": {
            "image": ""
          }
        }
      }
    },
    "tmp_name": {
      "102": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1395": {
            "image": ""
          },
          "1398": {
            "image": ""
          },
          "1401": {
            "image": ""
          },
          "1404": {
            "image": ""
          }
        }
      },
      "103": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1405": {
            "image": ""
          },
          "1408": {
            "image": ""
          },
          "1411": {
            "image": ""
          },
          "1414": {
            "image": ""
          },
          "1417": {
            "image": ""
          },
          "1420": {
            "image": ""
          },
          "1423": {
            "image": ""
          },
          "1426": {
            "image": ""
          }
        }
      },
      "105": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1428": {
            "image": ""
          }
        }
      }
    },
    "error": {
      "102": {
        "icon": 4,
        "icon_inverted": 4,
        "instructionData": {
          "1395": {
            "image": 4
          },
          "1398": {
            "image": 4
          },
          "1401": {
            "image": 4
          },
          "1404": {
            "image": 4
          }
        }
      },
      "103": {
        "icon": 4,
        "icon_inverted": 4,
        "instructionData": {
          "1405": {
            "image": 4
          },
          "1408": {
            "image": 4
          },
          "1411": {
            "image": 4
          },
          "1414": {
            "image": 4
          },
          "1417": {
            "image": 4
          },
          "1420": {
            "image": 4
          },
          "1423": {
            "image": 4
          },
          "1426": {
            "image": 4
          }
        }
      },
      "105": {
        "icon": 4,
        "icon_inverted": 4,
        "instructionData": {
          "1428": {
            "image": 4
          }
        }
      }
    },
    "size": {
      "102": {
        "icon": 0,
        "icon_inverted": 0,
        "instructionData": {
          "1395": {
            "image": 0
          },
          "1398": {
            "image": 0
          },
          "1401": {
            "image": 0
          },
          "1404": {
            "image": 0
          }
        }
      },
      "103": {
        "icon": 0,
        "icon_inverted": 0,
        "instructionData": {
          "1405": {
            "image": 0
          },
          "1408": {
            "image": 0
          },
          "1411": {
            "image": 0
          },
          "1414": {
            "image": 0
          },
          "1417": {
            "image": 0
          },
          "1420": {
            "image": 0
          },
          "1423": {
            "image": 0
          },
          "1426": {
            "image": 0
          }
        }
      },
      "105": {
        "icon": 0,
        "icon_inverted": 0,
        "instructionData": {
          "1428": {
            "image": 0
          }
        }
      }
    }
  }
}

Локальный выход:

{
  "user_guide": {
    "name": "",
    "type": "",
    "tmp_name": "",
    "error": 4,
    "size": 0
  },
  "instructionsData": {
    "name": {
      "102": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1395": {
            "image": ""
          },
          "1398": {
            "image": ""
          },
          "1401": {
            "image": ""
          },
          "1404": {
            "image": ""
          }
        }
      },
      "103": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1405": {
            "image": ""
          },
          "1408": {
            "image": ""
          },
          "1411": {
            "image": ""
          },
          "1414": {
            "image": ""
          },
          "1417": {
            "image": ""
          },
          "1420": {
            "image": ""
          },
          "1423": {
            "image": ""
          },
          "1426": {
            "image": ""
          }
        }
      },
      "105": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1428": {
            "image": ""
          },
          "1431": {
            "image": ""
          },
          "1434": {
            "image": ""
          },
          "1437": {
            "image": ""
          }
        }
      },
      "106": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1438": {
            "image": ""
          },
          "1441": {
            "image": ""
          },
          "1444": {
            "image": ""
          }
        }
      },
      "109": {
        "icon": "",
        "icon_inverted": "",
        "instructionData": {
          "1447": {
            "image": ""
          },
          "1450": {
            "image": ""
          },
          "1453": {
            "image": ""
          },
          "1456": {
            "image": ""
          },
          "1459": {
            "image": ""
          },
          "1462": {
            "image": ""
          },
          "1465": {
            "image": ""
          },
          "1468": {
            "image": ""
          },
          "1471": {
            "image": ""
          },
          "1474": {
            "image": ""
          },
          "1477": {
            "image": ""
          },
          "1480": {
            "image": ""
          },
          "1483": {
            "image": ""
          },
          "1486": {
            "image": ""
          },
          "1489": {
            "image": ""
          },
          "1492": {
            "image": ""
          },
          "1495": {
            "image": ""
          },
          "1498": {
            "image": ""
          },
          "1501": {
            "image": ""
          },
          "1504": {
            "image": ""
          },
          "1507": {
            "image": ""
          }
        }
      },
      ....

Не уверен, как выглядят «частичные данные в $_FILES». Вы можете показать нам?

Jonnix 12.02.2019 11:55

«PHP 5.3.29» — Прошло четыре с половиной года с тех пор, как PHP 5.3 получил обновление безопасности. Прекратите использовать его! Используйте то, что действительно поддерживается.

Quentin 12.02.2019 11:55

@JonStirling Я добавил пример

shemaya 12.02.2019 12:15

@Quentin, я согласен, это не мой выбор, я работаю на крупного клиента и уже давно пытаюсь заставить его обновиться.

shemaya 12.02.2019 12:16

Это не вывод $_FILES. Вы проверяете ключ error в $_FILES?

Jonnix 12.02.2019 12:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я обнаружил, что в Staging есть модуль, который называется suhosin, очевидно, у него больше ограничений безопасности.

Чтобы найти проблему, я добавил в php.ini:

suhosin.simulation = 1
suhosin.log.file = 511
suhosin.log.file.name = /tmp/suhosin-alert.log

Это привело меня к ошибке ALERT-SIMULATION - configured fileupload limit exceeded - file dropped, после исследования мне пришлось обновить эти свойства в php.ini:

max_file_uploads = 300
suhosin.upload.max_uploads=300

И тогда все данные появились правильно

Другие вопросы по теме