Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 5 1
Transkrypt
Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 5 1
Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 5 1. Podstawy tworzenia stron w PHP Dokonaj analizy poniŜszego kodu i na jego podstawie wyświetl w oknie przeglądarki swoje Imię oraz Nazwisko przy uŜyciu instrukcji echo i print <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE> Pierwszy program w PHP </TITLE> </HEAD> <BODY> <? // uŜywając funkcji "printf" printf ("Witaj na ćwiczeniach z PHP"); ?> </BODY> </HTML> 2. Zmienne i stałe w PHP Utwórz zmienne w których zapamiętasz swoje imię i nazwisko i wyświetl je na ekranie. Utworzenie zmiennej w PHP polega na podaniu znaku $ przed ciągiem alfanumerycznym reprezentującym nazwę zmiennej np. $napis = „ala ma kota”; $liczba = 124; $liczba_z_kropką = 13.45; Przykładowy progamik ze zmiennymi: <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Pole i obwód prostokąta</TITLE> </HEAD> <BODY> <? // W zmiennych zapamiętamy boki prostokąta, a // następnie obliczymy pole i obwód kwadratu. $bokA = 5; $bokB = 7; print ("Pole prostokąta o bokach $bokA i $bokB wynosi: ".$bokA*$bokB. " a obwód: " . 2*($bokA+$bokB) ); ?> </BODY> </HTML> Przykładowy progamik z definicjami stałych: <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Obliczamy podatek od dochodu 5000 PLN w 2000 roku</TITLE> </HEAD> <BODY> <? define ("KWOTA_DO_ODJECIA", 436.20); define ("STAWKA_PODATKOWA", 0.19); // czyli 19% print ("Podatek od dochodu 5000 PLN w 2000 roku wynosi: "); printf ("%0.2f", (5000 * STAWKA_PODATKOWA - KWOTA_DO_ODJECIA)); print (' PLN'); ?> </BODY> </HTML> 3. Podstawowe operatory w PHP = = ! = > < ++ -+= -= .= operator operator operator operator operator operator operator operator operator równowaŜności róŜności większości mniejszości inkrementacji (zwiększenia o 1) dekrementacji (zmniejszenia o 1) sumowania z podstawieniem odejmowania z podstawieniem łączenia łańcuchów tekstowych <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Moje dane</TITLE> </HEAD> <BODY> <? // Kolejne informacje zostają zbierane przy uŜyciu operatora .= // (przypisującego połączenie wyniku z argumentem). $tekst = 'Andrzej'; $tekst .= ' Kierzkowski'; $tekst .= '<BR>'; $tekst .= 'ul. Czekoladowa 15/6'; $tekst .= '<BR>'; $tekst .= '99-900 Czekoladowo'; print ($tekst); ?> </BODY> </HTML> 4. Instrukcja warunkowa if .... elseif .... else <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Pierwiastki równania kwadratowego</TITLE> </HEAD> <BODY> <? // Pierwiastki równania kwadratowego obliczamy zgodnie // ze szkolnym wzorem. $a = -1; $b = -2; $c = 1; print ("a = $a, b = $b, b = $c<BR>"); $delta = $b*$b-4*$a*$c; if ($delta < 0) { print ('Równanie nie ma pierwiastków rzeczywistych'); } elseif ($delta == 0) { $x1 = -$b/(2 * $a); print ("Równanie ma jeden pierwiastek rzeczywisty: $x1"); } else { $x1 = (-$b-sqrt($delta)) / (2*$a); $x2 = (-$b+sqrt($delta)) / (2*$a); print ("Równanie ma dwa pierwiastki rzeczywiste: $x1 i $x2"); } ?> </BODY> </HTML> 5. Instrukcje pętli for ..... Dokonaj analizy poniŜszego programu <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Odliczamy</TITLE> </HEAD> <BODY> <? // Wykorzystujemy dwie pętle - "w górę" i "w dół". for ($i=1; $i<=10; $i++) { print ("$i<BR>"); } print ('<BR>'); for ($i=10; $i>=1; $i--) { print ("$i<BR>"); } ?> </BODY> </HTML> i na jego podstawie napisz program, który obliczy i wyświetli N silnia (N!) 6. Instrukcje pętli while i do while..... Pętla while ma postać while (warunek) { blok instrukcji; } Pętla do ... while ma postać do{ blok instrukcji; }while (warunek); a) Zdefiniuj dwie liczny A i B i napisz program który znajdzie największy wspólny podzielnik tych liczb z wykorzystaniem instrukcji while b) Napisz program który sprawdzi ile kolejnych liczb naturalnych zaczynających się od 1 daje sumę większa od 100 z wykorzystaniem instrukcji do ... while 7. Instrukcja wielokrotnego wyboru switch Wprowadź poniŜszy kod do pliku PHP i obserwując w oknie przeglądarki uzyskany efekt dokonaj analizy jego działania. (instrukcja date() pobiera bieŜącą datę z systemu). <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Data</TITLE> </HEAD> <BODY> <? // Polska nazwa miesiąca określana w funkcji switch // do uzyskania dnia, miesiąca i roku uŜywamy funkcji date. $dzien = date("d"); $miesiac = date("m"); $rok = date("Y"); switch ($miesiac) { case '01': $miesiac = 'stycznia'; break; case '02': $miesiac = 'lutego'; break; case '03': $miesiac = 'marca'; break; case '04': $miesiac = 'kwietnia'; break; case '05': $miesiac = 'maja'; break; case '06': $miesiac = 'czerwca'; break; case '07': $miesiac = 'lipca'; break; case '08': $miesiac = 'sierpnia'; break; case '09': $miesiac case '10': $miesiac case '11': $miesiac case '12': $miesiac default: $miesiac = = 'września'; break; = 'października'; break; = 'listopada'; break; = 'grudnia'; break; 'niezidentyfikowany'; break; } print "$dzien $miesiac $rok"; ?> </BODY> </HTML> 8. funkcje w PHP Dokonaj analizy poniŜszych programów a) <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Pogrubienie</TITLE> </HEAD> <BODY> <? function pogrubienie ($lancuch) { return "<B>".$lancuch."</B>"; } print ("To jest tekst zwykły,<BR>"); print pogrubienie("a to jest tekst pogrubiony."); ?> </BODY> </HTML> b) <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Zgadnij płeć</TITLE> </HEAD> <BODY> <? function plec ($imie) { // Funkcja próbuje zgadnąć płeć osoby na podstawie ostatniej // litery jej imienia. $ostatnialitera = substr ($imie, strlen($imie)-1, 1); if ($ostatnialitera == 'a') { return 'kobieta'; } else { return 'męŜczyzna'; } } print ("Adam -- ". plec ('Adam')); ?> </BODY> </HTML> • Dokonaj przebudowy programu obliczającego silnię realizując zdefiniowaną przez Ciebie funkcję do obliczania silni. go w oparciu o • Zmodyfikuj program obliczający największy wspólny podzielnik tak aby jego podstawą była funkcja. 9. Tablice w PHP Dokonaj liczb: Analizy poniŜszego przykładu programu losującego i sortującego 20 kolejnych <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Sortowanie</TITLE> </HEAD> <BODY> <? // Program zapełnia tablicę losowymi liczbami i // sortuje ją metodą bąbelkową. function wypisztablice ($liczby) { // funkcja wypisuje tablice $liczby. for ($i=0; $i<20; $i++) { print "$liczby[$i] "; } } srand(time()); for ($i=0; $i<20; $i++) { $liczby[$i] = rand()%20+1; } print "Tablica: "; wypisztablice($liczby); print "<BR>"; $ilosc = count($liczby); do { $zamiana = False; $ilosc--; for ($i=0; $i<$ilosc; $i++) { if ($liczby[$i] > $liczby[$i+1]) { $pom = $liczby[$i]; $liczby[$i] = $liczby[$i+1]; $liczby[$i+1]= $pom; $zamiana = True; } } } while ($zamiana); print "Tablica posortowana: "; wypisztablice($liczby); print "<BR>"; ?> </BODY> </HTML> i na jego podstawie napisz program który dokona sprawdzi czy zdefiniowana liczba znajduje się w zbiorze wylosowanych 20 liczb. Napisz program który dokona losowego wprowadzenia współczynników dwu-wymiarowej macierzy, następnie dokona prezentacji tej macierzy w postaci tabeli w oknie przeglądarki i dla niej obliczy wyznacznik. Indeksem tablicy w PHP nie tylko musi być liczba. Występuję pojęcie tablicy asocjacyjnej w PHP. Działania na tablicach tego typu ilustruje poniŜszy przykład, który naleŜy wprowadzić i zanalizować. <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Dzień tygodnia</TITLE> </HEAD> <BODY> <? // Program wypisuje nazwę dnia tygodnia w języku polskim. Do // pamiętania polskich odpowiedników uŜywamy tablicy asocjacyjnej. $konwersja['Monday'] = 'poniedziałek'; $konwersja['Tuesday'] = 'wtorek'; $konwersja['Wednesday'] = 'środa'; $konwersja['Thursday'] = 'czwartek'; $konwersja['Friday'] = 'piątek'; $konwersja['Saturday'] = 'sobota'; $konwersja['Sunday'] = 'niedziela'; $dzientygodnia = date("l"); print "Dziś jest $konwersja[$dzientygodnia]."; ?> </BODY> </HTML> 10. Praca w Formularzach PHP Wprowadź i dokonaj analizy poniŜszego programu: <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Formularz</TITLE> </HEAD> <BODY> <? // Drukuje formularz i jednocześnie odbiera i wyświetla wpisane // w nim dane. if ($tekst) { // jest wpisana jakaś wartość w formularzu print "Wpisana wartość to <B>$tekst</B><BR>"; print '<A HREF="4-01.php">Powrót do formularza</A>'; } else { // nie ma wpisanych danych, wyświetlamy formularz print '<FORM ACTION="4-01.php" METHOD=POST>'; print '<INPUT TYPE="text" NAME="tekst">'; print '<INPUT TYPE="submit" VALUE="Wyślij">'; print '</FORM>'; } ?> </BODY> </HTML> Napisz program, który będzie wyświetlał formularz z moŜliwością wpisania trzech danych: A, B i C po czym wyświetli rozwiązanie równania kwadratowego Ax2+Bx+C = 0. Wprowadź i Zanalizuj poniŜszy przykład: <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Menu w formularzu</TITLE> </HEAD> <BODY> <? // Wyświetla formularz z menu, a następnie wyświetla wybraną przez // uŜytkownika opcję. if ($opcja) { # wartości w formularzu są wpisane switch ($opcja) { case 'pilka': $cowybrano = 'piłka noŜna'; break; case 'kosz': $cowybrano = 'koszykówka'; break; case 'siat': $cowybrano = 'siatkówka'; break; case 'nar': $cowybrano = 'narciarstwo'; break; case 'hokej': $cowybrano = 'hokej'; break; case 'boks': $cowybrano = 'boks'; break; case 'inny': $cowybrano = 'inny sport'; break; default: $cowybrano = 'niezidentyfikowana opcja'; break; } print ("UŜytkownik wybrał opcję: <B>$cowybrano</B>.<BR>"); print '<BR><A HREF="4-05.php">Powrót do formularza</A>'; } else { # nie ma wpisanych danych, wyświetlamy formularz print '<FORM ACTION="4-05.php" METHOD=POST>'; print '<SELECT NAME="opcja">'; print '<OPTION SELECTED VALUE="">-> wybierz, jak sport lubisz:'; print '<OPTION VALUE="pilka">piłka noŜna'; print '<OPTION VALUE="kosz">koszykówka'; print '<OPTION VALUE="siat">siatkówka'; print '<OPTION VALUE="nar">narciarstwo'; print '<OPTION VALUE="hokej">hokej'; print '<OPTION VALUE="boks">boks'; print '<OPTION VALUE="inny">inny sport'; print '</SELECT>'; print '<INPUT TYPE="submit" VALUE="Wyślij">'; print '</FORM>'; } ?> </BODY> </HTML> A następnie utwórz program, który po podaniu odpowiedniej nazwy uŜytkownika i jego hasła wyświetli tajna informację, jeŜeli wpisane dane nie będą poprawne wyświetli informację o błędzie. 11. Personalizacja Przeglądarki - Cookies i Sesje w PHP Wprowadź i zanalizuj mechanizm działania Cookies zapamiętującego dane uŜytkownika przeglądarki na przykładzie poniŜszego HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Pamiętamy imię i nazwisko</TITLE> </HEAD> <BODY> <? // Drukuje formularz i jednocześnie odbiera i wyświetla wpisane // w nim dane. Informacje są zapisywane w cookie. $imie = htmlentities ($imie); $nazwisko = htmlentities ($nazwisko); $imiecookie = htmlentities ($imiecookie); $nazwiskocookie = htmlentities ($nazwiskocookie); if (($nazwisko) && ($imie)) { # sa wpisane wartości w formularzu if ($pamietac) { setcookie ("imiecookie", "$imie", time()+25920000); setcookie ("nazwiskocookie", "$nazwisko", time()+25920000); } else { setcookie ("imiecookie", ""); setcookie ("nazwiskocookie", ""); } print "Wpisana wartość to <B>$imie $nazwisko</B>.<BR>"; print '<A HREF="4-11.php">Powrót do formularza</A>'; } else { # nie ma wpisanych danych, wyświetlamy formularz print '<FORM ACTION="4-11.php" METHOD=POST>'; print '<TABLE><TR><TD>nazwisko: </TD><TD><INPUT TYPE="text" '; print "NAME=\"nazwisko\" VALUE=\"$nazwiskocookie\"></TD></TR>"; print '<TR><TD>imię: </TD><TD><INPUT TYPE="text" '; print "NAME=\"imie\" VALUE=\"$imiecookie\"></TD></TR></TABLE>"; print 'Chcę, Ŝeby program pamiętał dane: <INPUT TYPE="checkbox"'; print 'NAME="pamietac"><BR>'; print '<BR><INPUT TYPE="submit" VALUE="Wyślij">'; programu print '</FORM>'; } ?> </BODY> </HTML> Wprowadź i zanalizuj mechanizm działania Sesji na przykładzie współdziałania poniŜszych 2 plików programu pamiętającego łączną liczbę odwiedzin danego uŜytkownika na dwóch stronach w ciągu danej sesji plik_1.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Sesje i zmienne</TITLE> </HEAD> <BODY> <? session_start(); print session_id(); if (isset($licznik)) { $licznik++; } else { $licznik = 1; } print "<P>Licznik: <B>$licznik</B></P>"; session_register ("licznik"); ?> <BR><A HREF="plik_1.php">Plik 1</A>, <A HREF="plik_2.php">Plik 2</A> </BODY> </HTML> plik_2.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Sesje i zmienne</TITLE> </HEAD> <BODY> <? session_start(); print session_id(); if (isset($licznik)) { $licznik++; } else { $licznik = 1; } print "<P>Licznik: <B>$licznik</B></P>"; session_register ("licznik"); ?> <BR><A HREF="plik_1.php">Plik 1</A>, <A HREF="plik_2.php">Plik 2</A> </BODY> </HTML>