- 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 человек;)
Это говнокод?
guest 22.05.2010 10:47 # −5
guest 22.05.2010 11:16 # −6
guest 22.05.2010 12:50 # +6
Есть функция getimagesize() которая выводит FALSE если пикча инвалидная
striker 22.05.2010 13:50 # +6
guest 22.05.2010 14:31 # +3
striker 22.05.2010 14:41 # +3
в том же мзз unlink выглядит так
try {
unlink('file.txt');
} catch (mzzException) {
echo 'Ошибка удаления файла';
}
guest 25.05.2010 20:04 # 0
striker 26.05.2010 00:42 # 0
striker 22.05.2010 14:45 # 0
wwwguru 24.05.2010 12:38 # 0
guest 23.05.2010 15:56 # −1
Ну а во-вторых - форматирование кода ни к черту, но блиадь, кучу одноразовых переменных - объявим. Зачем? Что-бы легче свой кал понять можно было?
На говнокод не тянет, но на никчемный калокод - еще как.
cheef 24.05.2010 12:01 # +2
turdman 24.05.2010 13:56 # 0
Хотя практическая польза, скорее всего, будет невелика
cheef 24.05.2010 14:04 # +1
Lure Of Chaos 24.05.2010 20:12 # 0
cheef 25.05.2010 12:40 # 0
Вы случаем на пол-ставки КО не подрабатываете? :) Очевиден факт, что можно подделать расширение, заголовки, в том числе и файла. Но наиболее приемлемый уровень надёжности обеспечивает проверка заголовков файла, её достаточно во всех случаях, кроме исключительно специфичных - когда программист параноик :) А остальные решения вполне можно причислить к велосипедам.
guest 23.05.2010 16:13 # +8
1) Множество кодов на PHP является подмножеством говнокодов
2) Парсинг параметров и работа с картинками не должна делатся в одном месте: это разные задачи, и они должны быть разнесены в разные классы иначе код не покрыть юнит-тестами, а так же получается low cohesion
3) затыкание чего либо собачкой (равно как и использование ERROR_LEVEL ниже DEBUG) -- дурной тон и прямой путь к ошибкам
4) использование "exit" не позволяет использовать этот модуль в других задачах: библиотека не имеет права останавливать работу приложения.
5) Хардкод литералов не позволяет нормально локализовать приложение.
Вывод: Этот типичный код на php, нарушающий все азы не только объектно-ориентированного и модульного, но даже банльно структурного программирования.
Благодарю тебя Господи, что я не PHP программист.
telnet 23.05.2010 19:18 # +1
> 1) Множество кодов на PHP является подмножеством говнокодов
Не всякий код на PHP - говнокод. Я согласен, что из-за низкого порога вхождения и косяков в, скажем так, идеологии языка писать на PHP говнокод во сто крат легче и проще, чем нормальный чистый код, и даже есть искушение писать как проще, а не как правильнее. Я прекрасно вижу, как пагубно сии факты влияют на профессиональные качества программистов, как тормозят их рост, а в клинических случаях и вовсе его стопорят ("знаешь что, иди-ка ты на хрен со своими парадигмами, я так привык/завтра заказ сдавать..."). Но это не означает, что нормальный чистый код на PHP а) написать невозможно и б) никто никогда не пишет. Хотя тот факт, что отношение обезьян к людям среди PHPшников заметно выше, чем среди пишущих на других языках, самого очень расстраивает.
Lure Of Chaos 23.05.2010 22:28 # +1
Я представляю какое вонючее говно можно было бы написать на том же Katahdin
telnet 24.05.2010 05:33 # 0
cheef 24.05.2010 12:11 # +2
telnet 24.05.2010 12:16 # +1
wwwguru 24.05.2010 12:25 # +1
Lure Of Chaos 24.05.2010 17:38 # −1
redh3ad 23.05.2010 23:19 # −2
В любом случае:
This is obvious 24.05.2010 09:28 # +1
mrbig66 24.05.2010 10:48 # 0
redh3ad 24.05.2010 12:00 # +1
Естествеено, по-хорошему проверка на все типы изображений.
Lure Of Chaos 24.05.2010 20:35 # −1
telnet 24.05.2010 11:46 # 0
redh3ad 24.05.2010 12:07 # −1
This is obvious 24.05.2010 13:41 # +3
This is obvious 24.05.2010 13:47 # −1
telnet 24.05.2010 14:09 # +6
Lure Of Chaos 25.05.2010 08:04 # −1
mrbig66 24.05.2010 14:11 # −1
cheef 24.05.2010 12:10 # −1
telnet 24.05.2010 12:20 # −1
Пока ещё не кроссхостингово. Кто как, а я пока не рискую пользоваться новыми фишками 5.3. Вот пошире распространится...
cheef 24.05.2010 12:23 # −1
HyperGeek 24.05.2010 15:37 # −2