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 може да премахне всичко след първия интервал в заглавката на типа съдържание, получено от клиента. Ако вашият случай е такъв, CERN httpd няма да може да изтегли правилно файловете.

Тъй като различните системи се справят с файловите структури по различен начин, няма гаранция, че файловете с екзотични имена (като тези, съдържащи бели интервали) ще бъдат обработени правилно.

Разработчиците не трябва да използват едно и също име за обикновени полета за въвеждане (таг за въвеждане) и полета за избор на файл в една и съща форма (например използване на име за таг за въвеждане като foo[]).