- •Методичні вказівки
- •Введення
- •Практична робота №1 тема: Встановлення та тестування коректності роботи системи Web-сервера Apache, систем рнр та MySql.
- •Завдання для самостійного виконання:
- •Практична робота №2 тема: Розробка динамічної Web-сторінки, використання змінних, констант, типи даних.
- •Завдання для самостійного виконання:
- •Практична робота №3 тема: Синтаксис рнр. Використання операцій та операторів
- •Завдання для самостійного виконання:
- •Практична робота № 4 тема: Основи розмітки сторінок нтмl. Елементи вводу інформації у Web сторінках. Взаємодія рнр-сценаріїв з формами
- •Завдання для самостійного виконання:
- •Практична робота №5 тема: Робота з текстовими даними у рнр. Форматування рядків. Об’єднання та розділення рядків. Порівняння рядків. Співставлення та заміна елементів рядків.
- •Завдання для самостійного виконання:
- •Практична робота №6 тема: Робота з масивами
- •Завдання для самостійного виконання:
- •Практична робота №7 тема: Робота з функціями.
- •Завдання для самостійного виконання:
- •Практична робота №8 тема: Взаємодія з файловою системою
- •Завдання для самостійного виконання:
- •Практична робота №9 тема Об’єктно-орієнтоване програмування на рнр
- •Завдання для самостійного виконання:
- •Практична робота № 10 тема: Взаємодія рнр-сценаріїв з базами даних
- •Завдання для самостійного виконання:
- •Практична робота № 11 тема: Робота з зображеннями
- •Завдання для самостійного виконання:
- •Практична робота № 12 тема: Використання регулярних виразів
- •Завдання для самостійного виконання:
- •Практична робота № 13 тема: Керування сеансами
- •Практична робота № 14 тема: Безпека Web-додатків
- •Вимоги до оформлення звіту
- •Вимоги до змісту звіту
- •Список літератури
- •Додаток а
- •Методичні вказівки
Практична робота №8 тема: Взаємодія з файловою системою
МЕТА – познайомитися з засобами взаємодії РНР з файловою системою.
Порядок виконання завдання:
1 Підтримка завантаження файлів на сервер по протоколу HTTP - одна з найважливіших функціональних можливостей РНР. У цьому процесі пересилання файлів відбувається не у звичайному для HTTP-протоколу напрямку - із сервера на браузер, а в протилежному - із браузера на сервер.
За допомогою блокноту створіть html-форму, та запишіть наступний програмний код для завантаження файлу на сервер.
<html> <head> <title> Адміністрація – завантаження нових файлів </title> </head> <body> <hl>Завантаження нових файлів новин</hl> <form enctype="multipart/form-data" action="upload.php" method=post> cinput type="hidden" name="MAX_FILE_SIZE" value="1000"> Upload this file: <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> </body> </html>
Збережіть отриманий код у файлі під назвою upload.html.
2 У файлі upload.php створіть PHP-сценарій прийому файлу, що пересилається за допомогою HTML-форми, використовуючи нижчеподаний програмний код:
<head> <title>Uploading... </head> <body> <hl>Uploading if ($userfile=="none") { echo "Problem: no file uploaded"; exit; } if ($userfile_size==0) { echo "Problem: uploaded file is zero length"; exit; } if ($userfile_type != "text/plain") { echo "Problem: file is not plain text" ; exit; } if ( ! is_uploaded_f ile ($userf ile) ) { echo "Problem: possible file upload attack"; exit; } $upfile = " /home /book/uploads/ " . $userf ile_name ; if ( ! copy ($userf ile, $upfile) ) < echo "Problem: Could not move file into directory"; exit ; echo "File uploaded successfully<brxbr>" ; $fp = f open ($upf ile, "r") ; $contents = fread ($fp, filesize ($upfile) ) ; f close ($fp) ; $contents = strip_tags ($contents) ; $fp = f open ($upf ile, "w") ; fwrite($fp, $contents) ; f close ($fp) ; echo "Preview of uploaded file contents : <brxhr>" ; echo $contents; echo "<brxhr>" ; ?> </body> </html>
Зверніть увагу, що основну частину обсягу цього сценарію становлять оператори перевірки помилок. Завантаження файлів на сервер може відбуватися із порушеннями безпеки, яким треба, за можливістю, запобігати. Важливо також ретельно перевіряти завантажений файл на предмет допустимості відкритої публікації інформації, що міститься в ньому.
3 Після завантаження декількох файлів користувачам може знадобитися переглянути їх і виконати деякі маніпуляції із змістом. Для цієї мети в РНР передбачений набір функцій для роботи з файлами й каталогами. Запишіть у файл browsedіr.php - сценарій, що виконує перегляд каталогів для перевірки результатів завантаження файлів за нижченаведеним прикладом
<html> <head> <tіtle>Browse Dіrectorіes</tіtle> </head> <body> <hl>Browsіng</hl> $current_dіr = "/home/book/uploads/"; $dіr = opendіr($current_dіr); echo "Upload dіrectory іs $current_dіr<br>" echo "Dіrectory Lіstіng: <brXhrXbr>"; whіle ($fіle = readdіr($dіr)) { echo "$fіle<br>" echo "<hrXbr>" closedіr($dіr); ?> </body> </html>