Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 6 12. Prosta obsługa Bazy w PHP 12.1 Wprowadź i zanalizuj mechanizm działania prostej bazy danych na poniŝszym przykładzie ksiąŝki telefonicznej baza.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <TITLE>Działająca ksiąŝka telefoniczna</title> </HEAD> <BODY> <? // Aplikacja daje nam moŝliwość odczytu, kasowania, dodawania // i poprway danych w bazie. mysql_connect("localhost","root","") mysql_query("create DATABASE IF NOT EXISTS `student`") or die("nie mogę utworzyć bazy danych"); mysql_select_db("student") or die("nie mogę połączyć się z tabelą"); $wynik=mysql_query("create TABLE IF NOT EXISTS `ksiazkatelefoniczna` (`nr` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `imie` TEXT NOT NULL, `nazwisko` TEXT NOT NULL, `telefon` INT( 5 ) UNSIGNED NOT NULL, PRIMARY KEY ( `nr` ));") or die ("błąd w tworzeniu tabeli"); if ($co == 'dodaj') { // dodawanie rekordu if ($imie && $nazwisko && $telefon) { $query = "INSERT INTO ksiazkatelefoniczna (nr, imie, nazwisko, "; $query.= "telefon) VALUES ('', '$imie', '$nazwisko', '$telefon');"; $wynik = mysql_query ($query); elseif ($co == 'popraw') { // poprawianie rekordu if ($imie && $nazwisko && $telefon) { $query = "UPDATE ksiazkatelefoniczna SET imie='$imie', nazwisko="; $query.= "'$nazwisko', telefon='$telefon' WHERE nr='$id';"; $wynik = mysql_query ($query); elseif ($co == 'edytuj') { // przygotowanie do poprawek $query = "SELECT * FROM ksiazkatelefoniczna where nr='$id';"; $wynik = mysql_query ($query); $rekord = mysql_fetch_array ($wynik); $id = $rekord[0]; $imie = $rekord[1]; $nazwisko = $rekord[2]; $telefon = $rekord[3]; print '<FORM METHOD="POST">Poprawa rekordu:'; print '<INPUT TYPE="hidden" NAME="co" VALUE="popraw">'; print '<INPUT TYPE="hidden" NAME="id" VALUE="'.$id.'"><TABLE>'; print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" '; print 'NAME="imie" VALUE="'.$imie.'"></TD></TR><TR><TD>Nazwisko:'; print '</TD><TD><INPUT TYPE="text" NAME="nazwisko"'; print 'VALUE="'.$nazwisko; print '"></TD></TR><TR><TD>Telefon:</TD><TD><INPUT TYPE="text"'; print 'NAME="telefon" VALUE="'.$telefon.'"></TD></TR>'; print '</TABLE><INPUT TYPE="submit" VALUE="Popraw"></FORM>'; elseif ($co == 'skasuj') { // kasowanie $wynik = mysql_query
("DELETE FROM ksiazkatelefoniczna WHERE nr = '$id';"); $wynik = mysql_query ("SELECT * FROM ksiazkatelefoniczna;"); print "<TABLE CELLPADDING=5 BORDER=1>"; print "<TR><TD><B>Imię</B></TD><TD><B>Nazwisko</B></TD>"; print "<TD><B>Telefon</B></TD><TD></TD><TD></TD></TR>\n"; while ($rekord = mysql_fetch_array ($wynik)) { $id = $rekord[0]; $imie = $rekord[1]; $nazwisko = $rekord[2]; $telefon = $rekord[3]; print "<TR><TD>$imie</TD><TD>$nazwisko</TD><TD>$telefon</TD><TD>"; print "<A HREF=\"baza.php?co=skasuj&id=$id\">skasuj</A></TD><TD>"; print "<A HREF=\"baza.php?co=edytuj&id=$id\">edytuj</A></TD></TR>\n"; print "</TABLE>"; print '<FORM METHOD="POST">Nowy rekord:'; print '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj"><TABLE>'; print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" '; print 'NAME="imie"></TD></TR><TR><TD>Nazwisko:</TD><TD><INPUT '; print 'TYPE="text" NAME="nazwisko"></TD></TR><TR><TD>Telefon:</TD>'; print '<TD><INPUT TYPE="text" NAME="telefon"></TD></TR>'; print '</TABLE><INPUT TYPE="submit" VALUE="Dodaj"></FORM>'; </BODY> </HTML> 12.2 Bazując na powyŝszym przykładzie stwórz prostą aplikację (przegląd, dodawanie, usuwanie i szukanie rekordów) obsługującą bazę danych z danymi studentów typu: Imię, Nazwisko, Nr_indeksu, Rok_Urodzenia, e-mail, średnia ocen. 13. Dokumenty wieloplikowe obsługa formularzy 13.1 Stwórz formularz w kodzie HTML wyglądający zgodnie z obrazkiem przedstawionym poniŝej w pliku o nazwie zad131.htm
z akcją naciśnięcia klawisza wywołującą plik o nazwie: zad131_a.php (przedstawiony poniŝej) realizujący funkcję prostej obsługi tego formularza z kontrolą poprawności wprowadzania danych. zad131_a.php <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250" > <title>informacje zwrotne</title> </head> <body> <?php // zadanie obslugi formaularza do zadania 13.1 // Sprawdź zmienną $name i usuń z niej wszelkie ukośniki: if (strlen($name) > 0) { $name = stripslashes($name); else { // JeŜeli nie wprowadzono nazwiska... $name = NULL; echo '<p><b>zapomniałeś(aś) podać swoje nazwisko!</b></p>'; // SprawdŜ zmienną $comments i usuń z niej wszelkie ukośniki: if (strlen($comments) > 0) { $comments = stripslashes($comments); else { // JeŜeli nie wprowadzono Ŝadnych uwag... $comments = NULL; echo '<p><b>zapomniałeś(aś) wprowadzić swoje uwagi!</b></p>'; // SprawdŜ zmienną $email: if (!(strlen($email) > 0) ) { $email = NULL; echo '<p><b>zapomniałeś(aś) podać swój e-mail!</b></p>'; // Płeć... if (isset($gender)) { if ($gender == 'M') { $message = '<b><p>witam Pana!</p></b>'; elseif ($gender == 'F') { $message = '<b><p>witam Panią!</p></b>'; else { // JeŜeli nie została określona płeć... $gender = NULL; echo '<p><b>zapomniałeś(aś) podać swoją płeć!</b></p>'; // JeŜeli wszystkie pola zostały wypełnione, wyświetl komunikat. if ($name && $comments && $email && $gender) { echo "Dziękuję Ci, <b>$name, </b> za Twoje uwagi: <br /><tt>$comments</tt><p>. Odpowiedź prześlę na adres <i>$email</i>.</p>"; echo $message; </body> </html>
13.2 Stwórz formularz w kodzie HTML wyglądający zgodnie z obrazkiem przedstawionym poniŝej w pliku o nazwie zad132.htm z akcją naciśnięcia klawisza wywołującą plik o nazwie: zad132_a.php (przedstawiony poniŝej) realizujący funkcję prostej obsługi tego formularza. Zad132_a.php <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250" /> <title>informacje zwrotne</title> </head> <body> <?php // obsluga formularza do zadania 13.2 -> zbieranie danych o zainteresowaniach uŝytkownika // Zbadaj zmienną $_POST['name'] i usuń z niej wszelkie ukośniki: if (strlen($_post['name']) > 0) { $name = stripslashes($_post['name']); else { // JeŜeli nie wprowadzono nazwiska... $name = NULL; echo '<p><b>zapomniałeś podać nazwisko!</b></p>'; // Zbadaj zmienną $interests[] if (isset($_post['interests'])) { $ints = implode (', ', $_POST['interests']); $interests = TRUE; else { $interests = NULL; echo '<p><b>zapomniałeś podać swoje zainteresowania!</b></p>'; // JeŜeli wszystkie pola zostały wypełnione, wyświetl komunikat. if ($name && $interests) { echo "Dziękuję, <b>{$_post['name']</b>. Podałeś następujące zainterestowania:<br /><tt>$ints</tt></p>"; </body> </html> 14. Zagadnienia zaawansowane. 14.1. Prosta Ankieta z obsługą pliku. Wprowadź i dokonaj analizy działania niniejszego programu obsługującego prostą Ankietę. Informacje przetwarzane dla obsługi statystyki Ankiety są gromadzone w pliku tekstowym. <HTML> <HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> <TITLE>Strona z ankietą</title> <STYLE> h2 {font-family: Arial, Helvetica, sans-serif; font-size: 12pt p, td, input {font-family: Arial, Helvetica, sans-serif; font-size: 9pt </STYLE> </HEAD> <BODY> <? // Ankieta do zastosowania w serwisie WWW. $glosowanie = array ('6' => 'rewelacyjna', '5' => 'bardzo dobra', '4' => 'dobra', '3' => 'przeciętna', '2' => 'zła', '1' => 'beznadziejna'); function glosowanie ($glosowanie, $quiz) { // funkcja zapamiętuje wynik głosowania danej osoby setcookie ('glosowano', "1"); // pamiętamy, Ŝe juŝ głosowano if (file_exists("glosowanie.txt")) { // jest plik z głosowaniem $plik = fopen ("glosowanie.txt", "r+"); flock ($plik, 2); $wiersz = fgets ($plik, 255); $wyniki = split ("\ ", $wiersz); fseek ($plik, 0); else { // nie ma pliku, więc go tworzymy $plik = fopen ("glosowanie.txt", "w+"); flock ($plik, 2); for ($i=0; $i<count($glosowanie);$i++) { // aktualizacja wyników if ($quiz == $i+1) { $wyniki[$i]++; fputs ($plik, $wyniki[$i]); if ($i<count($glosowanie)-1) {fputs ($plik, ' '); flock ($plik, 3); fclose ($plik); function wyswietlanie ($glosowanie, $glosowano) { // wyświetla: jeŝeli osoba głosowała - wyniki, jeŝeli nie - formularz if ($glosowano) { // wyświetlamy wyniki if (file_exists("glosowanie.txt")) { $plik = fopen ("glosowanie.txt", "r"); $wiersz = fgets ($plik, 255); fclose ($plik); $wyniki = split ("\ ", $wiersz); for ($i=0; $i<count($wyniki); $i++) { $liczbaglosow += $wyniki[$i]; print "<P ALIGN=CENTER><B>Ankieta</B></P>\n"; print "<P>Oceń moją stronę:</p><table>\n"; for (reset ($glosowanie); $klucz=key($glosowanie); next ($glosowanie)) { print "<TR><TD>".pos($glosowanie).": </TD><TD>"; if ($liczbaglosow == 0) { $procent = 0; // aby uniknąć dzielenia przez zero! else { $procent = ($wyniki[$klucz-1]/$liczbaglosow)*100; print "<IMG SRC=\"img/1.gif\" WIDTH=$procent HEIGHT=\"10\"></TD>"; print "<TD ALIGN=RIGHT> "; printf ("%0.0f", $procent); print ("%</TD></TR>"); print "</TABLE>";
else { // wyświetlamy formularz print '<FORM METHOD=GET ACTION="6-12.php">'; print "<P ALIGN=CENTER><B>Ankieta</B></P>\n"; print "<P>Oceń moją stronę:</p><table>\n"; for (reset ($glosowanie); $klucz=key($glosowanie); next ($glosowanie)) { print ('<TR><TD><INPUT TYPE=radio NAME=quiz VALUE="'.$klucz. '"> '. pos($glosowanie)."</td></tr>\n"); print '</TABLE><CENTER><INPUT TYPE=submit VALUE="Głosuj"></CENTER></P>'; print '</FORM>'; if ($quiz) { // oddano głos - aktualizacja danych i przekierowanie glosowanie ($glosowanie, $quiz); // "odkomentuj" jeden z poniŝszych nagłówków // jeŝeli uŝywasz w HTML przez SSI lub w innym PHP przez require: header ("Location: ".$GLOBALS["HTTP_REFERER"]); // jeŝeli chcesz uŝywać samodzielnie: // header ("Location: http://".$globals["server_name"]. // $GLOBALS["REDIRECT_URL"]); else { // formularz lub wyniki wyswietlanie ($glosowanie, $glosowano); </BODY> </ 14.2. Prosta Tablica ogłoszeń. Wprowadź i dokonaj analizy działania niniejszego programu obsługującego prostą tablicę ogłoszeń. Informacje prezentowane w niniejszej tablicy gromadzone są w bazie w MySQL. Dodaj.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> <TITLE>Tablica dyskusyjna -- dopisanie postu</title> </HEAD> <BODY> <H2>Tablica dyskusyjna</h2> <A HREF="pokaz.php">Wszystkie posty</a>, <A HREF="dodaj.php">Wyślij nowy post</a><hr> <? // Skrypt wyświetla formularz i przyjmuje dane, wpisując nowy post do // bazy. mysql_connect("localhost","root","") mysql_query("create DATABASE IF NOT EXISTS `tablica`") or die("nie mogę utworzyć bazy danych"); mysql_select_db("tablica")
mysql_query("create TABLE IF NOT EXISTS `tablicadyskusyjna` (`nr` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `ref` INT NOT NULL, `data` DATETIME NOT NULL, `osoba` TEXT NOT NULL, `tytul` TEXT NOT NULL, `tresc` TEXT NOT NULL, PRIMARY KEY ( `nr` ));") or die ("błąd w tworzeniu tabeli"); if ($co == 'wyslij') { // Ŝądanie dopisania $ty = addslashes(htmlentities ($tytul)); $os = addslashes(htmlentities ($osoba)); $tr = addslashes(nl2br(htmlentities ($tresc))); if ($ty && $os && $tr) { // dopisujemy! $query = ("INSERT INTO tablicadyskusyjna (osoba, tytul, tresc, ". "data, ref) VALUES ('$os', '$ty', '$tr', now(), '$ref');"); mysql_query ($query); print 'Wpis został dokonany. <A HREF="pokaz.php">Tablica dyskusyjna</a>'; exit; elseif ($ref>0) { // próba odpowiedzi na inny post $wynik = mysql_query ("SELECT osoba, tytul, tresc, data ". "FROM tablicadyskusyjna WHERE nr=$ref;"); if ($rekord = mysql_fetch_array ($wynik)) { // i ten post jest $tresc = $rekord[2]; $tytul = $rekord[1]; $tresc = str_replace ("<br>", "", $tresc); $tresc = str_replace ("\n", "\n: ", $tresc); $tresc = ": ".$tresc; if (!(ereg ("^Re: ", $tytul))) { // dopisujemy RE, o ile nie ma $tytul = "Re: ".$tytul; print "<H3>Odpowiedz na post: $rekord[1]</h3><p>wysłany przez "; print "<B>$rekord[0]</B>, <B>$rekord[3]</B></P>$rekord[2]<BR><HR>"; // Wyświetlenie formularza print "<H3>Poślij post:</h3>"; print "<FORM METHOD=POST><INPUT TYPE=\"hidden\" NAME=\"co\" VALUE=\""; print "wyslij\"><input TYPE=\"hidden\" NAME=\"ref\" VALUE=\"$ref\">"; print "<B>Osoba:</B><BR><INPUT TYPE=\"text\" NAME=\"osoba\" "; print "VALUE=\"$osoba\" SIZE=60><BR>\n<B>Tytuł postu:</b><br>"; print "<INPUT TYPE=\"text\" NAME=\"tytul\" VALUE=\"$tytul\" "; print "SIZE=60><BR><B>treść:</B><BR><TEXTAREA NAME=\"tresc\" "; print "ROWS=10 COLS=60>$tresc</TEXTAREA><BR>\n"; print "<INPUT TYPE=\"submit\" VALUE=\"Wyślij\">"; print "</FORM>"; </BODY> </HTML> Pokaz.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> <TITLE>Tablica dyskusyjna</title> </HEAD> <BODY> <H2>Tablica dyskusyjna</h2> <A HREF="pokaz.php">Wszystkie posty</a>, <A HREF="dodaj.php">Wyślij nowy post</a><hr> <? // Wyświetlanie tablicy dyskusyjnej. JeŜeli jest podany numer postu, // wyświetla się on i jego odpowiedzi. JeŜeli nie - cała tablica. function wypisztablice ($nr) { // Funkcja rekurencyjnie wyświetla wszystkie rekordy, będące poniŝej // w hierarchii postów (czyli odpowiedzi, odpowiedzi na odpowiedzi,
// itd... global $fref; global $fdata; global $fosoba; global $ftytul; print "<UL>"; for ($i=count($fref); $i>=1; $i--) { if ($fref[$i] == $nr) { print "<LI><A HREF=\"pokaz.php?nr=$i\">$ftytul[$i]</A>, ". "<I>$fosoba[$i], $fdata[$i]</i>"; wypisztablice ($i); print "</UL>"; mysql_connect("localhost","root","") mysql_query("create DATABASE IF NOT EXISTS `tablica`") or die("nie mogę utworzyć bazy danych"); mysql_select_db("tablica") mysql_query("create TABLE IF NOT EXISTS `tablicadyskusyjna` (`nr` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `ref` INT NOT NULL, `data` DATETIME NOT NULL, `osoba` TEXT NOT NULL, `tytul` TEXT NOT NULL, `tresc` TEXT NOT NULL, PRIMARY KEY ( `nr` ));") or die ("błąd w tworzeniu tabeli"); if ($nr>0) { // chcemy wyświetlić post $wynik = mysql_query ("SELECT osoba, tytul, tresc, data ". "FROM tablicadyskusyjna WHERE nr=$nr;"); if ($rekord = mysql_fetch_array ($wynik)) { // i ten post jest $tresc = $rekord[2]; $tytul = $rekord[1]; print "<H3>$rekord[1]</H3>"; print "<P>wysłany przez <B>$rekord[0]</B>, <B>$rekord[3]</B>:"; print "</P><P>$rekord[2]</P><HR>"; print "<A HREF=\"dodaj.php?ref=$nr\"> Wyślij odpowiedź</a><hr>"; else { $nr = 0; else { $nr = 0; // odczyt danych, które będą wykorzystane w funkcji rekurencyjnej $wynik = mysql_query ("SELECT nr, osoba, tytul, data, ref ". "FROM tablicadyskusyjna;"); while ($rekord = mysql_fetch_array ($wynik)) { $fref[$rekord[0]] = $rekord[4]; $fdata[$rekord[0]] = $rekord[3]; $ftytul[$rekord[0]] = $rekord[2]; $fosoba[$rekord[0]] = $rekord[1]; // wypisanie postów potomnych - rekurencja wypisztablice ($nr); </BODY> </HTML> 14.3. Rejestracja UŜytkowników witryny WWW. Wprowadź i dokonaj analizy działania niniejszego programu obsługującego prostą regułę rejestracji uŝytkowników w serwisie. Informacje gromadzone są w bazie w MySQL.
index.php <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250" /> <title>strona Powitalna</title> </head> <body bgcolor="#ffffff"> <table width="100%" border="0" cellspacing="0" cellpadding="4"> <td width="100%" bgcolor="#666666"><font color="#cccccc"><big><b>witam na mojej witrynie!</b></big></font></td> <td bgcolor="#cccccc"> <table width="100%" border="0" cellspacing="1" cellpadding="2"> <td align="center"><a href="index.php">strona domowa</a></td> <td align="center"><a href="rejestr.php">zarejestruj się</a></td> </table></td> </table> <br /> <table width="90%" border="0" cellspacing="2" cellpadding="4" align="center"> <tr bgcolor="#333333"> <td> <table width="100%" border="0" cellspacing="0" cellpadding="4"> <td bgcolor="#ffffff">! </td> <td width="100%"> <font color="#cccccc"> <b>tytuł</b></font></td> </table></td> </table> <table width="90%" border="0" cellspacing="4" cellpadding="4" align="center"> <td width="70%" valign="top"> <p><b>dokument podstawowy</b></p> <hr /> </td> </table> <br /> <table width="100%" border="0" cellspacing="0" cellpadding="2" bgcolor="#cccccc"> <td> <div align="center"> Podyplomowe Studium Informatyki 2004 r. </div></td> </table> </body> </html> rejestr.php <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" /> <title>zarejestruj sie</title> </head> <body bgcolor="#ffffff"> <table width="100%" border="0" cellspacing="0" cellpadding="4"> <td width="100%" bgcolor="#666666"><font color="#cccccc"><big><b>witam na mojej witrynie!</b></big></font></td>
<td bgcolor="#cccccc"> <table width="100%" border="0" cellspacing="1" cellpadding="2"> <td align="center"><a href="index.php">strona domowa</a></td> <td align="center"><a href="rejestr.php">zarejestruj się</a></td> </table></td> </table> <br /> <?php # Skrypt 3.15 - rejestracja.php if (isset($_post['submit'])) { // ObsłuŜ formularz. $message = NULL; // Utworz nową, pustą zmienną. // SprawdŹ nazwisko. if (strlen($_post['name']) > 0) { $name = TRUE; else { $name = FALSE; $message.= '<p>zapomniałeś podać swoje nazwisko!</p>'; // Sprawdź adres e-mail. if (strlen($_post['email']) > 0) { $email = TRUE; else { $email = FALSE; $message.= '<p>zapomniałeś podać swój adres e-mail!</p>'; // Sprawdź nazwę uŝytkownika. if (strlen($_post['username']) > 0) { $username = TRUE; else { $username = FALSE; $message.= '<p>zapomniałeś wprowadzić nazwę uŝytkownika!</p>'; // SprawdŹ czy uŝytkownik wprowadził hasło i czy w obu polach jest ono takie samo. if (strlen($_post['password1']) > 0) { if ($_POST['password1'] == $_POST['password2']) { $password = TRUE; else { $password = FALSE; $message.= '<p>za drugim razem wpisałeś inne hasło!</p>'; else { $password = FALSE; $message.= '<p>zapomniałeś wprowadzić hasło!</p>'; if ($name && $email && $username && $password) { // Jezeli wszystko jest OK. // Zarejestruj uzytkownika. mysql_connect("localhost","root","") mysql_query("create DATABASE IF NOT EXISTS `uzytkownik`") or die("nie mogę utworzyć bazy danych");
mysql_select_db("uzytkownik") mysql_query("create TABLE IF NOT EXISTS `osoby` (`nr` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `name` TEXT NOT NULL, `email` TEXT NOT NULL, `username` TEXT NOT NULL, `password` TEXT NOT NULL, PRIMARY KEY ( `nr` ));") or die ("błąd w tworzeniu tabeli"); $query = ("INSERT INTO osoby (name, email, username, password) $query.= VALUES ('$_POST['name']', '$_POST['email']', '$_POST['username']', $query.= '$_POST['password2']');"); mysql_query ($query); // Wyslij maila. $body = "Dziękujemy za zarejestrowanie się na naszej stronie!\ntwoja nazwa uŝytkownika to '{$_POST['username']' a Twoje hasło to '{$_POST['password1']'.\n\nZ powaŝaniem,\nmy"; mail ($_POST['email'], 'Dziekujemy za zarejestrowanie sie!', $body, 'From: admin@strona.com'); header ('Location: dziekujemy.php'); exit(); else { $message.= '<p>wróć do formularza i spróbuj jeszcze raz.</p>'; // Jezeli jest jakis komunikat o bledzie, wyswietl go na stronie if (isset($message)) { echo '<font color="red">', $message, '</font>'; <form action="<?php echo $_SERVER['PHP_SELF']; " method="post"> <fieldset><legend>wprowadź do poniŝszego formularza informacje na swój temat:</legend> <p><b>nazwisko:</b> <input type="text" name="name" size="20" maxlength="40" value="<?php if (isset($_post['name'])) echo $_POST['name']; " /></p> <p><b>adres e-mail:</b> <input type="text" name="email" size="40" maxlength="60" value="<?php if (isset($_post['email'])) echo $_POST['email']; " /> </p> <p><b>nazwa uŝytkownika:</b> <input type="text" name="username" size="20" maxlength="40" value="<?php if (isset($_post['username'])) echo $_POST['username']; " /></p> <p><b>hasło:</b> <input type="password" name="password1" size="20" maxlength="40" /></p> <p><b>potwierdź hasło:</b> <input type="password" name="password2" size="20" maxlength="40" /></p> </fieldset> <div align="center"><input type="submit" name="submit" value="wy lij dane" /></div> </form><!-- Koniec formularza --> <br /> <table width="100%" border="0" cellspacing="0" cellpadding="2" bgcolor="#cccccc"> <td> <div align="center"> Podyplomowe Studium Informatyki 2004 r. </div></td> </table> </body> </html>
15. Zadania do samodzielnej realizacji 15.1. Utwórz program typu kalkulator który udostępni uŝytkownikowi formularz w następującej postaci: i będzie wykonywać podstawowe działania matematyczne. Kalkulator naleŝy wzbogacić o informacje ilości wykonanych działań (wykorzystaj mechanizm Cookie lub Sesji). 15.2 Utwórz stronę z automatycznie wyświetlanym w dolnej części licznikiem odwiedzin. Dokonaj rejestracji w bazie adresu IP, nazwy hosta oraz rodzaju uŝytej przeglądarki uŝytkownika odwiedzającego stronę.