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 <TITLE> Pierwszy program w PHP </TITLE> // uŝywając funkcji "printf" printf ("Witaj na ćwiczeniach z PHP"); 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: <TITLE>Pole i obwód prostokąta</title> // 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) ); Przykładowy progamik z definicjami stałych: <TITLE>Obliczamy podatek od dochodu 5000 PLN w 2000 roku</title> 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'); 3. Podstawowe operatory w PHP
= = operator równowaŝności! = operator róŝności > operator większości < operator mniejszości ++ operator inkrementacji (zwiększenia o 1) -- operator dekrementacji (zmniejszenia o 1) += operator sumowania z podstawieniem -= operator odejmowania z podstawieniem.= operator łączenia łańcuchów tekstowych <TITLE>Moje dane</title> // 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); 4. Instrukcja warunkowa if... elseif... else <TITLE>Pierwiastki równania kwadratowego</title> // 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");
5. Instrukcje pętli for... Dokonaj analizy poniŝszego programu <TITLE>Odliczamy</TITLE> // 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>"); 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). <TITLE>Data</TITLE> // 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 = 'września'; break; case '10': $miesiac = 'października'; break; case '11': $miesiac = 'listopada'; break; case '12': $miesiac = 'grudnia'; break; default: $miesiac = 'niezidentyfikowany'; break; print "$dzien $miesiac $rok"; 8. funkcje w PHP Dokonaj analizy poniŝszych programów a) <TITLE>Pogrubienie</TITLE> function pogrubienie ($lancuch) { return "<B>".$lancuch."</B>"; print ("To jest tekst zwykły,<br>"); print pogrubienie("a to jest tekst pogrubiony."); b) <TITLE>Zgadnij płeć</title> 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')); Dokonaj przebudowy programu obliczającego silnię realizując go w oparciu o zdefiniowaną przez Ciebie funkcję do obliczania silni. Zmodyfikuj program obliczający największy wspólny podzielnik tak aby jego podstawą była funkcja.
9. Tablice w PHP Dokonaj Analizy poniŝszego przykładu programu losującego i sortującego 20 kolejnych liczb: <TITLE>Sortowanie</TITLE> // 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>"; 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ć. <TITLE>Dzień tygodnia</title> // 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]."; 10. Praca w Formularzach PHP Wprowadź i dokonaj analizy poniŝszego programu: <TITLE>Formularz</TITLE> // 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>'; 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 Ax 2 +Bx+C = 0. Wprowadź i Zanalizuj poniŝszy przykład: <TITLE>Menu w formularzu</title> // 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>'; 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 na przykładzie poniŝszego programu zapamiętującego dane uŝytkownika przeglądarki HTML> <TITLE>Pamiętamy imię i nazwisko</title> // 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">';
print '</FORM>'; 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 <TITLE>Sesje i zmienne</title> 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> plik_2.php <TITLE>Sesje i zmienne</title> 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>