- 1
- 2
- 3
- 4
- 5
$image = $_FILES['image']['tmp_name'];
if( !empty($image) )
{
@$src = imagecreatefromjpeg($image);
if($src==false){exit ('Это не картинка'); }
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+165
$image = $_FILES['image']['tmp_name'];
if( !empty($image) )
{
@$src = imagecreatefromjpeg($image);
if($src==false){exit ('Это не картинка'); }
Этот кусочек кода был спором 7 человек;)
Это говнокод?
Есть функция getimagesize() которая выводит FALSE если пикча инвалидная
в том же мзз unlink выглядит так
try {
unlink('file.txt');
} catch (mzzException) {
echo 'Ошибка удаления файла';
}
Ну а во-вторых - форматирование кода ни к черту, но блиадь, кучу одноразовых переменных - объявим. Зачем? Что-бы легче свой кал понять можно было?
На говнокод не тянет, но на никчемный калокод - еще как.
Хотя практическая польза, скорее всего, будет невелика
Вы случаем на пол-ставки КО не подрабатываете? :) Очевиден факт, что можно подделать расширение, заголовки, в том числе и файла. Но наиболее приемлемый уровень надёжности обеспечивает проверка заголовков файла, её достаточно во всех случаях, кроме исключительно специфичных - когда программист параноик :) А остальные решения вполне можно причислить к велосипедам.
1) Множество кодов на PHP является подмножеством говнокодов
2) Парсинг параметров и работа с картинками не должна делатся в одном месте: это разные задачи, и они должны быть разнесены в разные классы иначе код не покрыть юнит-тестами, а так же получается low cohesion
3) затыкание чего либо собачкой (равно как и использование ERROR_LEVEL ниже DEBUG) -- дурной тон и прямой путь к ошибкам
4) использование "exit" не позволяет использовать этот модуль в других задачах: библиотека не имеет права останавливать работу приложения.
5) Хардкод литералов не позволяет нормально локализовать приложение.
Вывод: Этот типичный код на php, нарушающий все азы не только объектно-ориентированного и модульного, но даже банльно структурного программирования.
Благодарю тебя Господи, что я не PHP программист.
> 1) Множество кодов на PHP является подмножеством говнокодов
Не всякий код на PHP - говнокод. Я согласен, что из-за низкого порога вхождения и косяков в, скажем так, идеологии языка писать на PHP говнокод во сто крат легче и проще, чем нормальный чистый код, и даже есть искушение писать как проще, а не как правильнее. Я прекрасно вижу, как пагубно сии факты влияют на профессиональные качества программистов, как тормозят их рост, а в клинических случаях и вовсе его стопорят ("знаешь что, иди-ка ты на хрен со своими парадигмами, я так привык/завтра заказ сдавать..."). Но это не означает, что нормальный чистый код на PHP а) написать невозможно и б) никто никогда не пишет. Хотя тот факт, что отношение обезьян к людям среди PHPшников заметно выше, чем среди пишущих на других языках, самого очень расстраивает.
Я представляю какое вонючее говно можно было бы написать на том же Katahdin
В любом случае:
Естествеено, по-хорошему проверка на все типы изображений.
Пока ещё не кроссхостингово. Кто как, а я пока не рискую пользоваться новыми фишками 5.3. Вот пошире распространится...