PHP Найбільш поширені помилки

Опція MAX_FILE_SIZE не повинна дозволяти передачу файлів, розмір яких перевищує ліміт, встановлений конфігураційною директивою upload_max_filesize у php.ini. Обмеження за замовчуванням складає 2 мегабайти.

Якщо встановлено обмеження пам'яті, вам може знадобитися збільшити значення опції memory_limit. Переконайтеся, що значення memory_limit досить велике.

У випадку, якщо опція max_execution_time встановлена ​​надто невеликим значенням, потрібний час роботи скрипта може перевищувати це значення. Переконайтеся, що значення max_execution_time досить велике.

Примітка: Директива max_execution_time стосується виключно часу, який використовується безпосередньо самим скриптом. Час, витрачений на зовнішні дії, такі як системні виклики за допомогою функції system() або sleep() , звернення до бази даних, а також час, витрачений на завантаження файлу та інші дії, що відбуваються поза скриптом, не враховуються при визначенні максимально допустимого проміжку часу, відведеного до виконання скрипта.

Директива max_input_time вказує максимально допустимий час в секундах для отримання вхідних даних, у тому числі файлів, що завантажуються. У випадку, якщо ви маєте справу з кількома або великими файлами, або видалені користувачі використовують повільний канал, обмеження за промовчанням 60 секунд може бути перевищено.

Якщо директива post_max_size дуже мала, великі файли не можуть бути завантажені на сервер. Переконайтеся, що значення директиви post_max_size досить велике.

Починаючи з версії PHP 5.2.12, опція max_file_uploads контролює максимальну кількість файлів, що завантажуються, протягом одного запиту. Якщо завантажується більше файлів, ніж зазначено в цьому обмеженні, томасив $_FILES припинить подальшу обробку файлів після досягнення цього обмеження. Наприклад, якщо max_file_uploads встановлено в 10, $_FILES ніколи не міститиме більше 10 елементів.

Якщо не перевіряти, з якими файлами ви працюєте, користувачі можуть отримати доступ до конфіденційної інформації, розміщеної в інших директоріях.

Слід зазначити, що CERN httpd може відсікти все, що йде після першого пропуску в заголовку content-type, що отримується від клієнта. Якщо у вас такий випадок, CERN httpd не зможе коректно завантажити файли.

Оскільки різні системи по-різному працюють із файловою структурою, немає жодних гарантій того, що файли з екзотичними іменами (наприклад, які містять пробілові символи) будуть оброблені коректно.

Розробники не повинні використовувати однакові імена для звичайних полів введення (тег input) і полів вибору файлу в межах однієї форми (наприклад, використовуючи ім'я для тега input на кшталт foo[]).