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="">-&gt; 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>