Материал: Методичні вказівки

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

<?php class A {     functіon example() {     echo "Це первісна функція A::example().<br>";     }} class B extends A {      functіon example() {          echo "Це перепевна функція B::example().<br>";          A::example();     }} $b = new B; $ b-b->example(); ?>

Збережіть отриманий код. Проаналізуйте відмінності між викликом методів базового та дочірнього класів.

Завдання для самостійного виконання:

5 Іноді виникає необхідність виконати ініціалізацію об'єкта - привласнити його властивостям первісні значення. Створіть у файлі init.php клас з ім'ям Coor, що містить дві властивості: ім'я людини й місто його проживання. Написати метод (функцію), що буде виконувати ініціалізацію об'єкта, наприклад Іnіt().

6 Внесіть зміни до попереднього файлу таким чином, щоб ініціалізація об0єкта викликалася автоматично при створенні об’єкту класу. Збережіть отриманий результат.

Практична робота № 10 тема: Взаємодія рнр-сценаріїв з базами даних

МЕТА – познайомитися з основами роботи з базами даних в  РНР

Порядок виконання  завдання:

1 Для створення власної бази даних в MySQL необхідно спочатку запустити сервер MySQL. Потім необхідно запустити інтернет браузер і в адресному рядку вввести: "http://localhost/phpmyadmin/".

Результат звернення за цією адресою представлений на малюнку 10.1.

Малюнок 10.1 - Виведення головної сторінки додатку phpMyAdmin

2 Впевнившись, що сервер запущений і працює нормально, створіть базу даних для зберігання інформації щодо виставлених на продаж автомобілів. Для цього у текстовому полі впишіть назву БД і натисніть кнопку "Создать". База даних повинна містити таблицю, тому створюємо таблицю у вікні, зображеному на малюнку (мал.10.2).

Малюнок 10.2 - Вікно для створення таблиці БД

3 Задайте ім'я таблиці і загальну кількість стовпчиків. Натисніть кнопку "Пошел". Перший стовпчик є ключем для пошуку необхідного запису, другий – містить інформацію щодо марки авто, третій – про рік випуску, четвертий – колір, п’ятий – тип кузову, шостий – вартість, сьомий – додатково встановлене устаткування. Для кожного поля необхідно встановити відповідний тип даних. Для ключа - встановити атрибут auto_increment. Результат показаний на малюнкy 10.3.

Малюнок 10.3 - Вікно для настроювання полів таблиці

3 За допомогою РНР заповніть створену таблицю і відобразіть її у браузері. Для виконання цього завдання необхідно виконати декілька кроків.

4 По-перше, необхідно зв'язати php-код зі створеною БД. Наступний крок - передати із потрібної таблиці дані в php і вивести їх на екран.

<html> <head> <title>данные по заказам</title> </head> <?php $db = mysql_connect("localhost","user","1"); $a=mysql_select_db("auto",$db); if ($a) {echo "";} else {echo "error!";} echo "<h3>Информация по всем заказам </h3>"; $ggg="SELECT * FROM avto"; $result = mysql_query ($ggg,$db); if ($result) {echo "";} else {echo "error!";} echo "<table border=2>"; $p=1; while ($myrow = mysql_fetch_array($result,MYSQL_ASSOC)) { if ($p == 1) { echo"<tr>"; foreach ($myrow as $ind => $buf){echo "<td>$ind</td>";} // выводим названия столбцов echo"</tr>"; $p=2; // присваиваем переменной $p двойку, чтоб при следующей итерации цикла while не выводились названия столбцов $ind } echo "<tr>"; foreach ($myrow as $buf) {echo "<td> $buf </td>"; } echo "</tr>"; } echo "</table>"; ?> <body> </body> </html>

Результат виконання представлений на малюнку 10.4.

Малюнок 10.4 – Зовнішній вигляд таблиці бази даних автомобілів

5 Для того, щоб заповнити таблицю, скористайтеся прикладом коду, описаним вище, у якому змініть mysql_query("SELECT * FROM avto", $db); на mysql_query ("INSERT INTO avto (key,marka,year,color,kuzov,cost,dodatok) VALUES ('1','BMW','2007','grey','sedan','30000','electro');",$db);

Завдання для самостійного виконання:

6 Зробіть вибірку з бази за автомобілями одієї марки.

7 Потім одночасно за двома полями: одного року випусу і одного кольору.

8 Замініть усі типи кузовів на седан.

9 Усім автомобілям 2008 року випуску замініть колір на зелений.

10 Створіть за допомогою HTML форму вводу за даними про автомобілі та зв’яжіть її з базою даних.

Введіть за допомогою цієї форми дані щодо декількох нових моделей автомобілів.

Практична робота № 11 тема: Робота з зображеннями

МЕТА – познайомитися з основами роботи із зображеннями в  РНР

Порядок виконання  завдання:

1 За допомогою функції imageLine побудуйте суцільну пряму лінію

2 За допомогою функції imageArc намалюйте частину еліпса.

int imageArc(int im, int cx, int cy, int w, int h, int s, int e, int color) 

Ця функція малює в зображенні im дугу сектора еліпса від кута s до е (кути вказуються у градусах проти годинникової стрілки). Еліпс малюється такого розміру, щоб вписатися у прямокутник (w, h), де w та h задають його ширину та висоту. cx та cy – координати центру еліпса. Сама фігура не замальовується, обводиться лише її контур, для чого використовується color.

3 За допомогою функції imagePolygon намалюйте багатокутник із заданими вершинами.

Завдання для самостійного виконання:

4 За допомогою функції imageDashedLine намалюйте пунктирну лінію.

5 За допомогою функції imageFilledRectangle намалюйте зафарбований прямокутник.

Практична робота № 12 тема: Використання регулярних виразів

МЕТА – познайомитися з основами використання регулярних виразів в  РНР

Порядок виконання  завдання:

1. Для роботи із регулярними виразами в РНР підтримується два стилі синтаксису регулярних виразів POSIХ і Perl. Стиль POSIХ компілюється в РНР за замовчуванням.

2. У РНР співставлення регулярних виразів подібне до  роботи функції strstr(). Нижче наведений перелік регулярних виразів у стилі POSIХ.

3 Запишіть та запустіть на виконання приклад коду, що здйснює пошук підрядків у рядку за допомогою регулярних виразів.

Завдання для самостійного виконання:

3 За допомогою функції пошуку підрядків ereg() в рядку «Жизнь прекрасна и удивительна, однако не так удивительна!» знайдіть підрядок «удивительна» і занесіть знайдене співпадіння у масив. Виведіть на екран рядок та елементи створеного масиву. Збережіть отриманий код.

Прототип функції ereg():

4 Виконайте попередню вправу за допомогою функції eregi(). Збережіть отриманий сценарій. Порівняйте результати роботи обох функцій, проаналізуйте.

5 За допомогою функції заміни підрядків ereg_replace() в рядку «Жизнь прекрасна и удивительна» знайдіть підрядок «удивительна» і замініть його на «ужасна». Виведіть на екран рядок до і після виконання функції. Збережіть отриманий код.

Прототип функції ereg_replace():

6 Розділіть рядок «itp.teleswet.net» на три компоненти та виведіть кожний з них в окремому рядку на екран. Збережіть отриманий код.

Практична робота № 13 тема: Керування сеансами

МЕТА – познайомитися з основами керування сеансами в  РНР

Порядок виконання  завдання:

1 Напишіть код що виконує обробку трьох сторінок у сеансі. На першій сторінці потрібно запустити сеанс і зареєструвати змінну $sess_var. Код, що дозволяє зробити це, показаний нижче:

<? sessіon_start(); sessіon_regіster("sess_var"); $sess_var = "Hello world!"; echo "The content of \ $sess_var іs $sess_var<br>"; ?> <a href = "page2.php">Next page</a>

Збережіть сценарій у файлі з назвою page1.php.

2 Наступний сценарій починається з виклику sessіon_start(). Збережіть його у файлі page2.php. Код, що дозволяє зробити це наведений далі:

sessіon_start();

echo "The content of \ $sess_var іa $sess_var<br>"

sessіon_unregіster("sess_var");

<a href = "page3.php">Next page</a>

3. Сценарій, що буде завершувати сеанс та знищувати його збережіть у файлі page3.php.

sessіon_start(); echo "The content of \ $sess_var іs $sess_var<br>"; sessіon_destroy() ;

4 Прослідкуйте за станом змінної . $sess_var на всіх етапах. Проаналізуйте результат.

5 У цій вправі потрібно створити лічильник відвідувань сторінки. Для цього застосовується зберігання даних сеансу. Скористайтеся поданим нижче кодом:

Збережіть отриманий сценарій у файлі phpcounter.php. Результат виконання показаний на малюнку 13.1

Малюнок 13.1 – Лічильник відвідувань працює нормально

6 Передайте ідентифікатор сеансу без cookies через приховане поле форми за допомогою наступного коду:

 

 

Збережіть отриманий код у файлі phpsessionnocookies.php. Результат виконання представлений на малюнку 13.2

Малюнок 13.2 – Передача ідентифікатора сеансу без cookies

Практична робота № 14 тема: Безпека Web-додатків

МЕТА – познайомитися з основами забезпечення безпеки web-додатків в  РНР

Порядок виконання  завдання:

1 Розглянемо безпеку Web-додатків на прикладі аутентифікації користувачів Створіть за допомогою блокнота файл secret.php і в ньому запишіть програмний код, поданий нижче:

2 Якщо файл буде завантажений без параметрів, то буде відображено форму із запрошенням ввести ім’я та пароль користувача (мал.14.1)

Малюнок 14.1 – Запрошення на ввод імені та паролю користувача

3 Якщо введені дані не правильні, має відображатися повідомлення про помилку (див. мал. 14.2)

Малюнок 14.2 – Повідомлення про помилку при неправильних параметрів

4. Якщо введені дані правильні  - відображається секретна інформація (мал. 14.3)

Малюнок 14.3 – Відображення секретної інформації

5 До файлу із попередньої вправи застосуйте шифрування паролю користувача за допомогою функції crypt(). Для цього замість умови:

if($name= =”user” && $password = = “pass”)

треба описати умову:

if($name = ‘user’ && crypt ($password, ‘xx’) == ‘xxkTimYjlikoII’)

6 Збережіть виконані зміни в іншому файлі. Проаналізуйте результат виконання умови в обох випадках.

7 Більшість серверів (наприклад Apache) дозволяють обмежувати доступ до певних розділів веб-сайту. Шляхом налаштовування доступ отримають лише користувачі, які перераховані в конфігураційному файлі серверу. При спробі доступа до захищеної частини сервера буде відображено діалогове вікно, в якому слід увести ім’я користувача та його пароль, як показано на малюнку 14.4.

                Малюнок 14.4 – Діалогове вікно авторизації користувача

8 Створіть сценарій у якому використовується авторизація. Якщо користувач введе ім’я та пароль, його ім’я буде відображено. Якщо ж регістраційне ім’я не буде задано, доступ буде заборонений. Збережіть отриманий код.

Вимоги до оформлення звіту

  • орієнтація сторінки – книжкова;

  • поля в документі: ліве – 25мм., праве – 10 мм., верхнє і нижнє 15 мм;

  • для основного тексту використати шрифт Times New Roman, розміром 14 пт, вирівнювання по ширині, інтервал між рядками – одинарний, відступ першої строки 1,5 см;

Вимоги до змісту звіту

Звіт повинен мати титульний аркуш оформлений згідно до взірця (див. додаток А), а також виконані завдання. В кожному завданні повинні бути тема та мета завдання, а також програмні коди розроблюваних сценаріїв та результати їх виконання.

УМОВИ ЗАХИСТУ

При захисті роботи необхідно мати:

  • роздрукований звіт, оформлений в Word,

  • звіт в електронному вигляді (на електронному носії);

  • розроблені Web-додатки в електронному вигляді (на електронному носії).