Aplikacje WWW - laboratorium



Podobne dokumenty
Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium PHP + bazy danych

Aplikacje WWW - laboratorium

Niezbędne narzędzia. Przed rozpoczęciem pracy z PHP należy zainstalować odpowiednie narzędzia: środowisko PHP serwer WWW serwer baz danych MySQL

Aplikacje internetowe - laboratorium

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

INSTALACJA SERWERA LOKALNEGO TYPU WAMP NA PRZYKŁADZIE PAKIETU KRASNAL SERV 2.7

Aplikacje WWW - laboratorium

PRÓBNY EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE CZĘŚĆ PRAKTYCZNA

Zajęcia 11 wykorzystanie MySQL w PHP

Bazy Danych i Usługi Sieciowe

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

INSTALACJA SYSTEMU CMS JOOMLA!

Podstawy technologii WWW

Wykład 5: PHP: praca z bazą danych MySQL

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

Instalacja systemu zarządzania treścią (CMS): Joomla

Autor: Joanna Karwowska

Wprowadzenie do Doctrine ORM

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

XML-owe bazy danych ćwiczenia 1

Dokumentacja fillup - MS SQL

6. Bezpieczeństwo przy współpracy z bazami danych

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

INSTALACJA I KONFIGURACJA SERWERA PHP.

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Joomla! Instalacja. Pobierz pakiet instalacyjny. instalacji XAMPP

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Aplikacje WWW - laboratorium

Wdrożenie modułu płatności eservice. dla systemu Magento

Dokumentacja serwisu internetowego Zespołu Szkół Technicznych w Radomiu.

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Zaawansowane aplikacje internetowe - laboratorium

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Instrukcja instalacji oprogramowania dla środowiska MacOS

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Instrukcja instalacji

System kontroli dostępu ACCO NET Instrukcja instalacji

LeftHand Sp. z o. o.

PHP + MySQL w laboratorium (1)

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Bazy Danych i Usługi Sieciowe

Uruchamianie bazy PostgreSQL

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Instrukcjaaktualizacji

Laboratorium 3.4.2: Zarządzanie serwerem WWW

Aplikacje internetowe i rozproszone - laboratorium

Systemy zarządzania produkcją - MES

Sprzeg podstawowy do baz danych w PHP Mateusz Sowa, 2007

BACKUP BAZ DANYCH MS SQL

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Instrukcja obsługi/instalacji platformy Krok w Przedsiębiorczość Administrator platformy

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Laboratorium 1 Wprowadzenie do PHP

Instrukcja instalacji i konfiguracji APLIKACJI ECOCRAFT

PHP zaawansowane programowanie

Jak przenieść bazę danych na zdalny serwer?

Projektowanie baz danych za pomocą narzędzi CASE

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Problemy techniczne. Jak udostępnić dane na potrzeby wykonania usługi wdrożeniowej? Zabezpieczanie plików hasłem

Instrukcja instalacji oprogramowania dla środowiska MacOS

Dostęp do baz danych przy wykorzystaniu interfejsu ROracle i biblioteki Shiny

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT SITE ANALYZER 2.7.1

Bazy danych i usługi sieciowe

Projektowani Systemów Inf.

Laboratorium 6 Tworzenie bloga w Zend Framework

Aktualizacja firmware w urządzeniu za pośrednictwem FTP

Internetowe bazy danych

Nazwa kwalifikacji: Tworzenie aplikacji internetowych i baz danych oraz administrowanie bazami Oznaczenie kwalifikacji: E.14 Numer zadania: 01

Bazy Danych. Ćwiczenie 1: Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front

Instalacja VPN Check Point Mobile Apple macos Hight Sierra (v )

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

SymSync integracja danych Opencart/Prestashop Symfonia Handel Instrukcja obsługi

Wprowadzenie do framework a Symfony

Tworzenie bazy danych w środowisku OpenOffice.org Base tabela, formularz, kwerenda, raport

5.6.2 Laboratorium: Punkty przywracania

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT CEIDG MONITOR

Cisco SPA1xx (SPA112, SPA122)

INSTRUKCJA OTWARCIA RACHUNKU ALIOR TRADER PRZEZ INTERNET

Krótka instrukcja instalacji Adobe Acrobat Reader

Państwowa Wyższa Szkoła Zawodowa w Gorzowie Wlkp. Laboratorium architektury komputerów

BEXLAB RYSZARD MATUSZYK, BRZOZOWA 14, DĘBE WIELKIE, TEL. KOM.: Instalacja. Microsoft SQL Server 2008 R2 SP2 Express

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Dokumentacja Administratora portalu. aplikacji. Wirtualna szkoła

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Nazwa kwalifikacji: Tworzenie aplikacji internetowych i baz danych oraz administrowanie bazami Oznaczenie kwalifikacji: E.14 Numer zadania: 02

Aplikacje internetowe laboratorium XML, DTD, XSL

Zastępstwa Optivum. Jak przenieść dane na nowy komputer?

Transkrypt:

Aplikacje WWW - laboratorium PHP + bazy danych Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, współpraca PHP z bazami danych. Ćwiczenia można wykonać na dowolnym komputerze, którym zainstalowano serwer HTTP (np. Apache z obsługą PHP) oraz bazę danych (w przykładach do ćwiczeń wykorzystano bazę MySQL znajdującą się w pakiecie Krasnal Serv). Rozwiązania ćwiczeń omawianych w poniższym zestawie zostały przygotowane z wykorzystaniem pakietu Krasnal Serv (wersja 2.7, adres: http://www.olesno.pl/~pablo/krasnal/), który jest przygotowanym dla użytkowników systemu Windows zestawem programów pozwalających na szybkie rozpoczęcie pracy z skryptami PHP. W skład pakietu wchodzą między innymi następujące, wstępnie skonfigurowane narzędzia: Apache, PHP, MySQL. Należy jednak zwrócić uwagę, że wersje tych narzędzi w pakiecie Krasnal mogą nie być najnowsze. Skrypt PHP można umieścić w pliku o rozszerzeniu zależnym od konfiguracji serwera. Zwykle są to pliki.php. Ćwiczenie 1 Przygotowanie bazy danych wykorzystywanej w ćwiczeniach. 1. Uruchom serwer pakietu Krasnal Serv a następnie przeglądarkę internetową. W przeglądarce wpisz adres: http://127.0.0.1, a następnie wybierz odnośnik phpmyadmin. Realizując kolejne kroki ćwiczenia poprzez aplikację phpmy Admin zwróć uwagę na wyświetlane przez aplikacje wykonywane przez nią polecenia SQL. 2. Zaloguj się do aplikacji phpmyadmin podając odpowiednie dane (domyślny użytkownik: root, hasło: krasnal ) 3. Utwórz bazę danych o nazwie: studxxxxx (XXXXX to Twój numer indeksu)

4. Kliknij odnośnik localhost reprezentujący serwer, a na stronie serwera - odnośnik Uprawnienia. Dodaj nowego użytkownika o nazwie studxxxxx i haśle studxxxxx (XXXXX to Twój numer indeksu) z możliwością logowania się tylko lokalnie. Nie nadawaj użytkownikowi żadnych uprawnień globalnych.

5. Wróć do strony głównej programu phpmyadmin. Wybierz odnośnik Uprawnienia i nadaj użytkownikowi studxxxxx komplet uprawnień do wcześniej utworzonej bazy danych o nazwie studxxxxx. Aby przejść do edycji użytkownika kliknij ikonkę po prawej stronie tabeli z listą użytkowników. Następnie w celu ustawienia uprawnień dla bazy danych studxxxxx wybierz nazwę bazy danych z listy rozwijanej w sekcji Uprawnienia specyficzne dla baz danych.

6. Pobierz na dysk lokalny skrypt dane_mysql.sql. W pierwszym wierszu skryptu zmień nazwę bazy danych na odpowiednią i zapisz zmiany. W aplikacji phpmyadmin wybierz z menu znajdującego się po prawej stronie ikonę SQL i w otwartym oknie w zakładce Import plików wskaż zmodyfikowany plik dane_mysql.sql, a następnie zleć jego wykonanie. 7. Sprawdź czy dane zostały poprawnie załadowane do bazy. W tym celu ponownie wybierz z menu znajdującego się po prawej stronie ikonę SQL, a następnie wykonaj kolejno poniższe polecenia SQL: a. USE studxxxxx b. SELECT * FROM pracownicy c. SELECT * FROM etaty

Ćwiczenie 2 Celem tego ćwiczenia jest zapoznanie się z rozdziałem pomocy dla języka PHP opisującym sposób korzystania z bazy danych MySQL. W trakcie tego ćwiczenia zostanie także stworzony skrypt zawierający przykładowy kod dołączający się do bazy danych, wykonujący zapytanie i prezentujący wyniki tego zapytania. 1. Korzystając z dokumentacji dla języka PHP znajdującej się pod adresem http://www.php.net/docs.php sprawdź listę systemów baz danych wspieranych przez PHP. Zauważ, że dostępna jest też polska wersja dokumentacji i to w wielu formatach: on-line, oraz HTML i CHM do pobrania i wykorzystywania off-line. 2. Zapoznaj się z listą i opisem funkcji służących do współpracy z bazą danych MySQL. 3. Stwórz plik cw_2.php i umieść go w katalogu obsługiwanym przez serwer Krasnal Serv. W pliku umieść znaleziony w dokumentacji przykładowy kod ilustrujący sposób współpracy PHP z bazą danych MySQL. Kod należy zmodyfikować tak, aby pozwalał skorzystać z bazy danych utworzonej w poprzednim ćwiczeniu. <?php // Connecting, selecting database $link = mysql_connect('localhost', 'studxxxxx', 'studxxxxx') or die('could not connect: '. mysql_error()); echo 'Connected successfully'; mysql_select_db('studxxxxx') or die('could not select database'); // Performing SQL query $query = 'SELECT id_prac, nazwisko, imie, etat, placa_pod FROM pracownicy'; $result = mysql_query($query) or die('query failed: '. mysql_error()); // Printing results in HTML echo "<table>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; // Free resultset mysql_free_result($result); // Closing connection mysql_close($link);?>

4. Przeanalizuj powyższy kod, odnajdując w nim fragmenty związane z współpracą z bazą danych, obsługą błędów i formatowaniem wyników zapytania. 5. Uruchom powyższy kod wywołując odpowiednią stronę w przeglądarce internetowej

6. Spróbuj wprowadzić błędy do powyższego kodu, na przykład: zła nazwa użytkownika, czy też błędne zapytanie i sprawdź jak wygląda obsługa błędów. Następnie przywróć poprawną wersję.

Ćwiczenie 3 W tym ćwiczeniu dane pochodzące z bazy danych posłużą do wygenerowania odnośników do strony wyświetlającej szczegółowe informacje o wybranym pracowniku. 1. Zapoznaj się z opisem funkcji array mysql_fetch_assoc ( resource wynik ). 2. Utwórz plik cw_3.php i umieść w nim kod pozwalający przejść do strony ze szczegółowymi danymi o wybranym pracowniku <?php // Connecting, selecting database $link = mysql_connect('localhost', 'studxxxxx', 'studxxxxx') or die('could not connect: '. mysql_error()); echo 'Connected successfully'; mysql_select_db('studxxxxx') or die('could not select database'); // Performing SQL query $query = 'SELECT id_prac, nazwisko, imie, etat, placa_pod FROM pracownicy'; $result = mysql_query($query) or die('query failed: '. mysql_error()); // Printing results in HTML echo "<table>\n"; while ($row = mysql_fetch_assoc($result)) { echo '<tr>'; echo '<td>'.$row["nazwisko"].'</td>'; echo '<td>'.$row["imie"].'</td>'; echo '<td>'.$row["etat"].'</td>'; echo '<td>'.$row["placa_pod"].'</td>'; echo '<td><a href="cw_3a.php?id_prac='.$row["id_prac"].'">szczegoly</a></td>'; echo '</tr>'; } echo "</table>\n"; // Free resultset mysql_free_result($result); // Closing connection mysql_close($link);?>

3. Stwórz plik cw_3a.php wyswietlający szczegółowe infomacje o pracowniku, którego numer został przekazany jako parametr <?php // Connecting, selecting database $link = mysql_connect('localhost', 'studxxxxx', 'studxxxxx') or die('could not connect: '. mysql_error()); echo 'Connected successfully<p>'; mysql_select_db('studxxxxx') or die('could not select database'); // Performing SQL query $query = 'SELECT id_prac, nazwisko, imie, etat, placa_pod, placa_dod, zatrudniony '. 'FROM pracownicy '. 'where id_prac='.$_get["id_prac"]; $result = mysql_query($query) or die('query failed: '. mysql_error()); // Printing results in HTML while ($row = mysql_fetch_assoc($result)) { echo 'Imie: <b>'.$row["imie"].'</b><br>'; echo 'Nazwisko: <b>'.$row["nazwisko"].'</b><br>'; echo 'Etat: <b>'.$row["etat"].'</b><br>'; echo 'Placa podstawowa: <b>'.$row["placa_pod"].'</b><br>'; echo 'Placa dodatkowa: <b>'.$row["placa_dod"].'</b><br>'; echo 'Pracuje od: <b>'.$row["zatrudniony"].'</b><br>'; } // Free resultset mysql_free_result($result); // Closing connection mysql_close($link);?> <hr> <a href="cw_3.php">powrot do instytutu</a> <a href="cw_4.php?id_prac=<?php echo $_GET["id_prac"];?>">Modyfikuj</a>

4. Wadą utworzonego w poprzednim punkcie skryptu jest jego podatność na włamania typu SQL injection ze względu na wklejanie wartości parametru do treści polecenia SQL bez żadnej weryfikacji. Aby zilustrować możliwość ataku wprowadź w przeglądarce następujący URL: http://localhost/cw_3a.php?id_prac=180+or+1 5. Aby uchronić skrypt przed wspomnianym rodzajem ataku, zastąp fragment kodu realizujący wykonanie zapytania poniższym: // Performing SQL query $id = (int) $_GET["id_prac"]; $query = 'SELECT id_prac, nazwisko, imie, etat, placa_pod, placa_dod, zatrudniony '. 'FROM pracownicy '. 'where id_prac='.$id; $result = mysql_query($query) or die('query failed: '. mysql_error()); Zastosowane w tym wypadku rozwiązanie uniemożliwia wklejenie do treści zapytania wartości nieliczbowej. Ogólniejszym rozwiązaniem jest wykorzystanie prekompilowanych poleceń SQL zawierających zmienne wiązane. (MySQL 3.x niestety nie wspiera tego mechanizmu.)