![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
Код:
1.Ничего не выводит $error при неверных форматах и размерах. 2.Если размер фала в районе 2-х мегабайт, то тоже незагружается файл и ошибки никакой не выдает сервер, так происходит и на localhost и на сервере в инете. ПОЧЕМУ нет ошибки и как сделать правильно проверку на размер и формат файла??? |
|||
|
||||
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
Неужели никто не знает в чем ошибка? и как реализовать "правильную" проверку на размер и расширение файла?
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ладно, по всем показателям ещё не проверял, но поробуй вот эту функцию:
использование: $r = fileUpLoader('fieldname', 'directory/', array('jpg','jpeg','png','gif')); $file - имя поля, $path - путь, куда положить файл, $type - массив расширений, если не указывать, то любые, $newname - если не указывать, то сохранится под своим именем, если указать, то новое имя, если поставить true, то сам сгенерирует новое имя, $rewrite - переписать ли файл с таким же именем результат возвращается в виде массива [result, message, path] result - true - если удачно, false - если не получилось, message - какая ошибка, path - если удачно, то вернёт путь к новому файлу Это сообщение отредактировал(а) bars80080 - 22.1.2009, 15:41 |
|||
|
||||
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
хорошо bars80080 сегодня вечерком после работы проверю.
о результате дам знать. Это сообщение отредактировал(а) bazzjr - 22.1.2009, 15:14 |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
сыровата слегка, сейчас подправил кое-что
|
|||
|
||||
| Hellka |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 2.2.2006 Репутация: нет Всего: нет |
а в переменной $file["size"] вообще есть что-то перед проверкой?
сразу-то никак проверять вот так:
зачем переменные лишние? так-то по идее правильно написано, проверяй содержимое массива.... а для формата юзай: $HTTP_POST_FILES['userfile']['type'] только ишак и фаерфокс например для пнг файла выдают разные значения image/x-png и image/png |
|||
|
||||
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
bars80080 Отлично! Все робит... немного дописал код под себя(ресайз добавил).
Только вот одно но - в IE6 пишет ошибку "Perhaps, attack throught upload" а в ФФ и Опере все нормуль! я так понимаю ошибка здесь?:
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
потому что IE отсылает jpeg файл с заголовком Content-Type: image/pjpeg, а Опера с Firefox - стандартное image/jpeg Добавлено через 53 секунды кстати, про эту особенность уже говорили здесь:
|
|||
|
||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
нет
так что же, выкинуть проверку:
я так понимаю, она сама по себе не корректна? |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
т.е. функция is_uploaded_file() занимается сравнением $_FILES[<some>]['type'] и $pathInfo['extension']?
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
уууууууууууууу....
почти рефлекс уже: проблема только в ИЕ - причина в нестандартном MIME-type. А то, что у тебя в коде msg[6] выдается только при !is_uploaded_file, даже не посмотрел. Конечно, is_uploaded_file ничего не проверяет. Добавлено через 1 минуту и 33 секунды в смысле, MIME-типы тут ни при чем. Добавлено через 3 минуты и 30 секунд правда, я и не говорил, что ошибка в твоем коде. это уже потом, когда ты повел разговор о своем коде, я поленился в него заглянуть. а вообще - отвечал(да, да, домыслил сам, не видя кода) на
подумал, что там появилась проверка на тип, оттого и не работает только под IE. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
не, а что же всё-таки делает is_uploaded_file()?
в описании написано малопонятное:
я так понимаю, просто вырубить её? не критично для файлов, которые будут просто отдаваться пользователям по ссылке на них? |
|||
|
||||
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
нееет... эта часть кода
сравнивает значения в массиве т.е. jpg jpeg gif png. И такое впечатление что и правда в ИЕ файлы jpg вовсе и не jpg а хз какие... Мне вот сравнение на типы файлов позарез нужно (да и очень небезопасно непровверять на типы)... Кто подскажет как сравнивать для ИЕ??? (все таки "ишаГ" блин |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
я так понимаю, проверяет, чтоб переданный аргумент(который совсем необязательно должен быть элементом массива $_FILES) указывает на существующий файл(соответственно, не нужна проверка на $_FILES[<some>]['error']) и находится в каталоге, указанном, как каталог для временных файлов. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |