ZeiZ
Новичок
Обработка Имагов
Доброе время суток PHP программеры.
Давно я вам не писал, и был повод. Но «кто вспомнит прошлое, тому глаз вон» Нородная мудрость (с).
Сегодня, через год отсутсятвия, я снова хочу взорвать Вам мозги.
А конкретнее, поговорим о свободном добавлении посетителями фото-файлов на некий ресурс, а ещё точнее про алгоритм (блок-схему) как это надо или не надо делать.
И так: Перед нами HTML форма отправки файла: типа поле и кнопочка «обзор…».
По идее пользователь должен выбрать на своем компе некий файл и соответственно положить его. Далее он нажимает кнопку формы а-ля “submit” и форма переходит в post=”xxx.php”.
Ну я прям как для новичков это рассказываю.
Как написать такую форму я опущу, а вот xxx.php файлик для нас более актуален.
Сейчас я не смогу Вам выдать полный кодинг этого файла (на другом компе), зато нашел блок-схему в *.gif
!!! Хочу обратить внимание на то, что фото на сайт будут загружаться любыми пользователями, без предварительной регистрации!!!
Преветствуем.
Датировка Блок-схемы – 7 марта 2007г.
Поясняю алгоритм блок-схемы:
0) Непосредственно форма отправки файла
1) Чтож! Форма отправлена, стоит проверить есть ли у нас в серверных темпах файлик от этого поста? Что-то есть -> на 2) ---- Нет –> на 0)
2) Молодец! Загрузил что-то не на**ал! А что это? Проверим расширение. Это JPEG или GIF -> 3) ---- Что-то другое –> на 0)
(Политика сайта: только *.GIF или *.JPG или *.JPEG)
3) Ну любой файл можно переименовать в *.jpg. Стоит проверить а вправду это изображение или нет? ОК! – Это картинка –> 4) ---- Нет это не картинка хоть и имеет расширение картинки -> на 0)
4) А вот и картинка. А какой размер она имеет. Нам не нужно ничего меньше 320 так или 320 иначе (некрасиво будет смотреться на сайте). Я (картинка) сфоткана с мобильной цифры 0,3мпх (640на480) -> 5) Я сделана в пайнте и я 10000000000000000000000 на 1 пикс. -> на 0)
5) Ну вот и успокоились… Куда ее сохранять- это отдельная тема, неважно, сохранили из темп куда-то. -> на 6)
6) Тут ищем какая сторона больше и обрезаем (GD2 – 4ever) картинку с соотношениями 1 к 0,75 – т.е. соотношение любой стандартной фото (480/640=0,75) -> 7)
7) Ну тут блок-схема толком заканчивается для общего, т.е. то что я хочу вам доложить.
И собственно: НЕ НАДО мне говорить, что создано 100 классов для этого и т.д.
Собственно меня интересуют Ваши варианты БЕЗОПАСНОГО решения данной проблемы и/или объяснение дыр в моей блок-схемы (не в голове и не в ДНК, про это вы уже говорили) =)
Доброе время суток PHP программеры.
Давно я вам не писал, и был повод. Но «кто вспомнит прошлое, тому глаз вон» Нородная мудрость (с).
Сегодня, через год отсутсятвия, я снова хочу взорвать Вам мозги.
А конкретнее, поговорим о свободном добавлении посетителями фото-файлов на некий ресурс, а ещё точнее про алгоритм (блок-схему) как это надо или не надо делать.
И так: Перед нами HTML форма отправки файла: типа поле и кнопочка «обзор…».
По идее пользователь должен выбрать на своем компе некий файл и соответственно положить его. Далее он нажимает кнопку формы а-ля “submit” и форма переходит в post=”xxx.php”.
Ну я прям как для новичков это рассказываю.
Как написать такую форму я опущу, а вот xxx.php файлик для нас более актуален.
Сейчас я не смогу Вам выдать полный кодинг этого файла (на другом компе), зато нашел блок-схему в *.gif
!!! Хочу обратить внимание на то, что фото на сайт будут загружаться любыми пользователями, без предварительной регистрации!!!
Преветствуем.
Датировка Блок-схемы – 7 марта 2007г.

Поясняю алгоритм блок-схемы:
0) Непосредственно форма отправки файла
1) Чтож! Форма отправлена, стоит проверить есть ли у нас в серверных темпах файлик от этого поста? Что-то есть -> на 2) ---- Нет –> на 0)
2) Молодец! Загрузил что-то не на**ал! А что это? Проверим расширение. Это JPEG или GIF -> 3) ---- Что-то другое –> на 0)
(Политика сайта: только *.GIF или *.JPG или *.JPEG)
3) Ну любой файл можно переименовать в *.jpg. Стоит проверить а вправду это изображение или нет? ОК! – Это картинка –> 4) ---- Нет это не картинка хоть и имеет расширение картинки -> на 0)
4) А вот и картинка. А какой размер она имеет. Нам не нужно ничего меньше 320 так или 320 иначе (некрасиво будет смотреться на сайте). Я (картинка) сфоткана с мобильной цифры 0,3мпх (640на480) -> 5) Я сделана в пайнте и я 10000000000000000000000 на 1 пикс. -> на 0)
5) Ну вот и успокоились… Куда ее сохранять- это отдельная тема, неважно, сохранили из темп куда-то. -> на 6)
6) Тут ищем какая сторона больше и обрезаем (GD2 – 4ever) картинку с соотношениями 1 к 0,75 – т.е. соотношение любой стандартной фото (480/640=0,75) -> 7)
7) Ну тут блок-схема толком заканчивается для общего, т.е. то что я хочу вам доложить.
И собственно: НЕ НАДО мне говорить, что создано 100 классов для этого и т.д.
Собственно меня интересуют Ваши варианты БЕЗОПАСНОГО решения данной проблемы и/или объяснение дыр в моей блок-схемы (не в голове и не в ДНК, про это вы уже говорили) =)