Проверка файлов PHP

1 234
Wolf-izv
На сайте с 04.07.2008
Offline
49
#31
А если у пользователя ворд вообще не установлен? Какой майм отсылается?
Проверять, так уж лучше по расширению файлов: doc, docx, rar ...

Вобщем это форма отправки резюме с сайта. Форма приаттачевает только файлы указаного типа.

Странно, что из-за такого маленького куска кода тут разгорелась такая дискуссия! Спасибо всем кто помог!

Для тех кто в теме: бонус +25% от суммы пополнения депозита мой выбор брокера (http://www.roboforex.ru/?a=cyow)
T.R.O.N
На сайте с 18.05.2004
Offline
314
#32

Wolf-izv,

как совет, дайте народу возможность отослать любой документ, хотя-бы из списка MS Word (хотя , по хорошему, стоит поддерживать и iWork), если сайт для людей

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
[Удален]
#33
DyaDya:
Заклевали

Да не нормально всё, просто не все согласны с моим мнением, это нормальная практика (если бы все думали одинаково то не существовало бы форумов)

DyaDya:
сожрут заживо

Так немного покусают и всего делов, это не смертельно :)

Я в принципе сам немного виноват, недостаточно чётко описал свою позицию. (Замечу, просто личная позиция, не пытаюсь никому навязать, только озвучиваю.)

Так вот она проста: Код не требовательный к быстродействию (не только РНР) пишется не только для компа, но и для других программистов (так-же участвующих в разработке, последующей поддержке продукта)

Да, если мы пишем процедуру которая будет работать в цикле миллионы раз то тут быстродействие на первом месте. Как бы то ни было, 99% web-задач не требуют этого, в таких случаях очень дешевле выйдет (а финансовая составляющая является неотьемлимой частью при работе с "аутсорсерами") иметь структурированный код глядя на который радуется глаз.

Бывали случаи когда меня просили поставить капчу на уже работающие сайты (на двигах разработанных на заказ в разных студиях) так вот что получалось...

Встроить один и тот же код, одним людям обходилось в $5 и занимало у меня 10 минут, другим же тоже самое я отказывался делать даже за $50 (я просто не видел возможности в разумные сроки сориентироваться в их коде, обычный казалось бы РНР выглядел для меня как какой-то язык древних египтян.)

Ink-developer
На сайте с 31.01.2009
Offline
138
#34

О чем спор? Меня вообще удивляет как можно спорить когда очевидно что код:


$formats[1] = "application/msword";
$formats[2] = "text/plain";
$formats[3] = "application/docx";
$formats[4] = "application/pdf";
if ($_FILES['resume']['type']!== $formats[1])
if ($_FILES['resume']['type']!== $formats[2])
if ($_FILES['resume']['type']!== $formats[3])
if ($_FILES['resume']['type']!== $formats[4])

Это код начинающего программиста, эдак 1-2 месяца. Как говорится в php можно найти несколько реализаций но если так кодить то после обработки кода сайта грамотным специальстом его (код) можно уменьшить в объеме в трое. И что бы там не говорили о красоте, скорости, грамотный код это его минимальное количество.

Например я когда начинал изучать php то скрипт "сколько онлайн" написанный такими методами как выше занимал 70 строк, через месяц я понял что это ахинея (if if if if)

переписал и код стал 30 строк, еще через пару месяцев я уже переписал код в 5 строк и как тут можно спорить какой код лучше? Уж явно не в 60 строк. А с подходом который выше скрипты будут просто свалкой.

вариант wano-moroz для меня просто очевидно более верный

представим что массив $formats

доходит в итоге до 1000 и что ?

$formats[1]

.......

$formats[999]

if ($_FILES['resume']['type']!== $formats[1])

.....

if ($_FILES['resume']['type']!== $formats[999])

не бред ли?

Явно in_array тут еще более заявит о своей правильности, а сам массив можно в базу или файл. А код будет не 999 строк а в любом случае только 2.

И тут неуместно оправдываться типа "ну тут же не 999 элементов" т.к. писать нужно изначально правильно что бы потом не надо было переписывать.

.

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий