ЗМАГАННЯ ЗАВЕРШЕНО
НАЗВА ПРОЕКТУ
Конкурс:
Онлайн конкурс "PHP"
Номінація:
PHP
Автор:
Женя Болдырев
Команда:
 
ЗАВДАННЯ 1

Зображення з секретом.

Можливо, ви знаєте, можливо ні, якщо поєднати картинку та архів то файл буде відкриватися як картинка та як архів. Це виникае тому, що программа перегляду картинок аналізує файлу спочатку, а кінець ігноруює. Программа, що аналізуює архів навпаки ігнорує усе доки не зустріне сигнатуру архіву.

Тож до завдання:

Потрібно створити форму з двома полями для вводу файлу та кнопку "почати завантаження". Перше поле вводу файлу буде для картинки, друге для архіву. Після натиснення на кнопку  "почати завантаження" файли завантажуються на сервер, об`єднуються (спочатку код картинки, потім код архіву). Після об`єднання результуючий файл зберігається у папці secrets та одразу починається його завантаження. Тобто, для користувача після натиснення кнопки одразу починаеться завантаження готового файлу з секретом, без перезавантаження сторінки. ( Реалізується за довомогою функції php header(); )


ОПИС РОБОТИ:
Опис результатів

ЗАВДАННЯ 2

Автопоновлення файлів.

Є дві папки: live_files та new_files . У папці live_files знаходяться файли що підлягають поновленню.

Написати скрипт update.php який проходить по всім файлам з папки new_files, та виконує такі дії :

  • Якщо файл відсутній у папці  live_filles , то скопіювати його із папки new_files.
  • Якщо  md5 хеші файлів з однаковими іменами відрізняються то замінити файл у папці  live_filles на файл з папки  new_files.

ОПИС РОБОТИ:
Опис результатів

ЗАВДАННЯ 3

Автопоновлення з архіву.

Є файли: index.php update.php new_version.zip . У архіві містяться нові версії фалів  index.php , update.php та деяких інших, яких немає у робочому каталозі.

Написати скрипт update.php який буде відкривати архів new_version.zip та поновлювати робочий каталог за алгоритмом із завдання 2, а саме:

  • Проходити по всім файлам архіву 
  • Якщо файл відсутній у робочому каталозі , то скопіювати його із архіву.
  • Якщо  md5 хеші файлів з однаковими іменами відрідняються то замінити файл у робочому каталозі на файл з архіву.

ОПИС РОБОТИ:
Опис результатів

ЗАВДАННЯ 4

Робота з зображенням.

Створити форму завантаження картинки (файлу) на сервер. 

 

На сервері створити скрипт обробки завантаженої картинки.  

Кожне завантажене зображення має бути оброблене таким чином :

  • У папку original поміщається завантажуваний файл.
  • У папку big поміщається картинка розміром не більше ніж 500px*500px у форматі jpg або jpeg з чорним фоном.
  • У папку small поміщається картинка розміром не більше 200px*200px у форматі png із прозорим фоном.

Під час зміни розміру зображення потрібно зберігати пропорції.  Завантажувана картинка може бути png із прозорим фоном. У зменшеному варіанті вона буде із прозорістю а у великому варіанті із чорним кольором на місці прозорості.

Результатом виконання завдання має бути один php файл (передбачити автоматичне створення папок).


ОПИС РОБОТИ:
Опис результатів

ОБГОВОРЕННЯ:
2013-03-18 20:55 Дмитрий Мачавариани:
Ура! Главное не проспать!
2013-03-19 01:03 Женя Болдырев:
Подскажите пожалуйста, а под работой с изображениями подразумевается библиотека GD?
2013-03-20 22:56 Сергей Христенко:
исходя из предыдущих заданий, то скорей всего да!
2013-03-21 00:02 Дмитро Вітюк:
Так. На конкурсі будуть використовуватися функції бібліотеки GD. http://php.net/manual/ru/book.image.php
2013-03-23 11:14 Дмитро Вітюк:
Сьогодні не буде переносу конкурсу! :)
2013-03-23 12:42 Іван Безсмертний:
Ой не факт))
2013-03-23 15:36 Дмитро Вітюк:
Факт! Змінимо традицію переносу конкурсу! :)
2013-03-23 19:09 Ігор Циховський:
АААААААААААААа. врубите меня в игру...
2013-03-23 19:16 Дмитро Вітюк:
Ігоре, включайтесь!
2013-03-23 19:45 Дмитро Вітюк:
Не зможу відповідати на запитання. Сподіваюсь, усе зрозуміло. Якщо не встигнете надсилайте на пошту info@it-arena.org .
2013-03-23 20:50 Дмитрий Мачавариани:
Админы, не могу прикрепить файл, не вылазиет окошно для загрузки файла.
2013-03-23 21:07 Іван Безсмертний:
Невстиг прикріпити рішення завдання №2, вислав на почту
2013-03-23 21:07 Дмитрий Мачавариани:
Иван, а ты сколько заданий всего успей сделать, если не секрет?
2013-03-23 21:09 Ігор Циховський:
не успел ничего прикрепить, все отправил на почту))))
2013-03-23 21:23 Іван Безсмертний:
я сделал 3, последним было второе, там нужно было немного переделать и подошло бы и к третьему,но время уже закончилось
2013-03-23 21:25 Дмитрий Мачавариани:
Ууууу, молодец!)) Я только одно сделал :(((
2013-03-23 21:27 Іван Безсмертний:
а че так?
2013-03-23 21:28 Дмитрий Мачавариани:
Да с архивами работать не умею, надо подучиться.
2013-03-23 21:59 Олександр Громовий:
Доброго вечора, учасники! Усі файли, які були надіслані на пошту, прикріплені, перевіряйте!
2013-03-23 22:58 Дмитро Вітюк:
Вітаю усіх із завершенням конкурсу! Вибачаюсь, що не був з вами у час проведення. Як вам завдання? Сподіваюся сподобалися... У столиці оголошено надзвичайний стан. Можливо це тому, що конкурс з PHP не був перенесений на інший день :)
2013-03-26 18:51 Іван Безсмертний:
Дозвольте трохи покритикувати. подивився код першого завдання у Миколи Красана ну і зробляний він трохи по лєвандоски, даже дуже по лєвандоски. віддаюця заголовки без самого файлу, файл який одержуєця без розширення і замість картинки з архівом містить в собі кучо варнінгів які спипляться від пхп. директорія створюєця без перевірки, а може така вже існує?? і що за непонятні присвоєння "$_FILES[`picture`][`name`] = picture;"??? це шось новеньке. шо за непонятні "copy"?? нащо отримувати імя файлу, копірувати його непонятно куди а потім ше й грузити його функцією "move_uploaded_file"??? в чому тут прикол?? І в загалі було сказано що вихідний файл має бути в папкі сікретс. Файли які були завантажені після себе треба підчищати. І немає перевінки на то який файл був скормлений скріпту, а це важно. ------------------ В Ігоря Циховського з заголовками трохи краще а от в завантаженні тоже біда, тоже віддаєця непонятно який файл, непонятно звідки, і навіть не провіряєця що там було скормлено скіптові. ------------------ Так що толку від того що код "короткий" ніякого)) ------------------ Ой відчуваю в мене зараз будуть литіти гнилі помідори))
2013-03-26 18:58 Іван Безсмертний:
Подивився код другого завдання у Ігоря Циховського. Питання - а накой читувати вміст файлів, і робити його md5? є функція яка називаєця md5_file() і вона може працювати з файлами. Ой, оце ступив, тількишо подивився свій код і оказалось шо я замість md5_file() використовую просто md5() :)))))))))))))))
2013-03-26 19:24 Дмитро Вітюк:
Іване, критика це правильно. Однак, я мав на увазі не завдання загалом а деякі моменти. Зрозуміло, що у коді не вистачає змінних. Потрібно змінними віддавати ім`я завантажуваної картинки. Файл з warning віддається тому, що у рядку склеювання не вказана назва файлу. "Гнилі помідори ліпити" ніхто не буде... Можу сказати зауваження. Якщо скрипт лежить не у $_SERVER[`DOCUMENT_ROOT`] , а у підпапці скажімо $_SERVER[`DOCUMENT_ROOT`].`konkurs/php/zavd1/` то папки теж створються не там де потрібно. На мою думку краще використовувати SCRIPT_FILENAME . А що до виведення header(); : Файл glue.php 32-37 print_r(); перед header();. Тож у Вашому проекті, header теж не зовсім коректно працює.
2013-03-26 19:32 Іван Безсмертний:
упс, а я що відправив файл в якому строки 33-37 не закоментовані :-D оце прокол)))) а про документ рут віно підмітили