You are on page 1of 18

Tworzenie serwisw WWW.

Pierwsza pomoc
Autorzy: Maria Sok, Radosaw Sok
ISBN: 978-83-246-1073-0
Format: A5, stron: 112

Osobisty serwer HTTP instalacja, konfiguracja, zabezpieczanie


Podstawy jzyka PHP tworzenie dynamicznych stron WWW
Korzystanie z baz danych wprowadzanie, modyfikacja i kasowanie informacji
Uywanie mechanizmu AJAX natychmiastowa reakcja strony na dziaania
uytkownika
Przyznaj si nudzi Ci ju tworzenie zwyczajnych, statycznych stron internetowych?
Masz apetyt na wicej i chtnie podjby wyzwanie polegajce na stworzeniu caego,
dynamicznie zmieniajcego si ukadu stron? Ta ksika to recepta na Twoje potrzeby!
Dziki niej masz wreszcie moliwo wykreowania interaktywnego, funkcjonalnego
serwisu WWW, ktry nie tylko udostpni uytkownikom sensownie posegregowane,
wyczerpujce informacje i nie narazi ich na konieczno cigego odwieania strony,
a przy tym nie utrudni Ci jego obsugi. Spieszymy z fachow pierwsz pomoc
z niezbdn wiedz!
Pakiet XAMPP pobieranie, instalacja, modu administracyjny
Serwer WWW testowanie i podstawy umieszczania stron
Jzyk PHP zmienne, warunki, tablice i inne
Interakcja z uytkownikiem wprowadzanie danych do programu i ich archiwizacja
Podstawy obsugi bazy MySQL zakadanie, zarzdzanie, konta uytkownikw
Baza danych MySQL nowa tabela, prawa dostpu, poczenie z poziomu kodu PHP
Baza danych a strona WWW wspdziaanie i poczenia
Zapytania SQL moliwo wyszukiwania i segregacji danych
Technologia AJAX sprytne sztuczki do wykorzystania
Twoja recepta na profesjonalne tworzenie nowoczesnych serwisw WWW!

Tworzenie serwisw WWW

Spis treci
Wstp /5
1. Czym s dynamiczne strony WWW? /9
2. Skd pobra pakiet XAMPP? /10
3. Jak zainstalowa pakiet XAMPP? /12
4. Jak przetestowa dziaania serwera WWW? /14
5. Jak zabezpieczy modu administracyjny pakietu XAMPP? /15
6. Dlaczego strona bezpieczestwa XAMPP
nie moe zosta wywietlona? /17
7. Jak umieci na serwerze swoj pierwsz stron WWW? /18
8. Jak korzysta na swoich stronach WWW
z jzyka programowania PHP? /20
9. Jak korzysta ze zmiennych? /23
10. Jak umoliwi uytkownikowi
wprowadzenie danych do programu? /26
11. Jak uzaleni dziaanie programu od jakiego warunku? /27
12. Jak wygodnie podawa dane stronie WWW? /29
13. Jak wykona jedn operacj kilka razy z rzdu? /31
14. Jak czy ze sob kilka warunkw? /35
15. Jak korzysta z tablic? /38
16. Do czego su podprogramy? /43
17. Jak budowa stron WWW
na podstawie powtarzajcych si fragmentw? /46
18. Jak przechowywa informacje o dziaaniach uytkownika? /50
19. Jak zarzdza baz danych MySQL? /56
20. Jak zaoy nowe konto uytkownika bazy danych? /58
21. Jak zaoy now baz danych? /61
22. Jak stworzy now tabel danych w bazie? /63
23. Jak przydzieli prawa dostpu do bazy? /68

Spis treci 3

Tworzenie serwisw WWW

24. Jak wprowadza dane do tabeli


za pomoc moduu phpMyAdmin? /71
25. Jak nawizywa poczenie z baz danych
z poziomu kodu PHP? /74
26. Jak umieszcza na stronie WWW dane pochodzce z bazy? /77
27. Jak wprowadza za pomoc strony WWW
nowe dane do bazy? /81
28. Jak wprowadza za pomoc strony WWW
poprawki do danych zapisanych w bazie? /89
29. Jak powiza zesob dwie tabele danych? /91
30. Jakzmieni nazwy pl danych zwracanych
wwyniku zapytania SQL? /102
31. Jak wykorzystywa technologi AJAX
na wasnych stronach WWW? /106

4 Spis treci

Tworzenie serwisw WWW

25. Jak
nawizywa
poczenie
z baz danych
z poziomu
kodu PHP?

aza danych obsugiwana za pomoc specyficznego narzdzia nie jest specjalnie przydatna. Owszem, jej moliwoci
wyszukiwania i grupowania danych mog by naprawd wielkie, jeeli jednak uytkownik bazy nie ma wobec niej takich
wymaga, prosty arkusz kalkulacyjny bdzie wygodniejszy
w obsudze i umoliwi szybsze wprowadzenie danych.
Si baz danych jest jednak moliwo bezporedniej wsppracy z wasnymi stronami WWW. Za pomoc kilku polece
jzyka PHP mona uzyska moliwo odczytywania danych
z bazy, filtrowania tych danych wedug zadanych kryteriw,
dodawania nowych rekordw lub modyfikowania ju istniejcych, a na koniec usuwania wybranych rekordw danych.
Zanim jednak bdzie mona z poziomu programu PHP
odwoa si do danych zapisanych w bazie, naley nawiza
poczenie z serwerem bazy danych. Odpowiada za to instrukcja mysql_connect(), ktrej parametrami s:

 nazwa lub adres IP komputera-serwera,


 nazwa konta uytkownika,
 haso konta uytkownika.

Zwracana warto to identyfikator poczenia. Jeeli bdzie


rwny false, poczenie nie mogo zosta nawizane. Kod
nawizujcy poczenie to zatem:
$baza = mysql_connect('localhost', 'baza', 'helion');
if ($baza === false) die('Nie mona byo nawiza poczenia
z baz '
.'z powodu bdu: ' . mysql_error());

Funkcja mysql_error() zwraca tekstowy opis ostatnio


wykrytego bdu w komunikacji z baz danych. W razie problemw z poczeniem instrukcja die() spowoduje przerwanie
dziaania caego programu (mier strony WWW: std nazwa
funkcji) i wypisanie w ramach strony komunikatu o bdzie
uzupenionego o kod bdu odczytany z bazy.

74

Tworzenie serwisw WWW


Wskazwka
Ze wzgldw bezpieczestwa dobrze jest bdy zwracane przez funkcj mysql_error() wywietla na stronie tylko
w czasie pracy nad kodem. Gdy strona dziaa ju poprawnie,
naley usun komunikaty, a zostawi tylko kod przerywajcy
dziaanie programu. Na podstawie komunikatw bdw wamywacz moe bowiem si domyli, jaka technika wamania
byaby odpowiednia w danym przypadku.

Gdy zostanie ju nawizane poczenie z baz danych, naley


zdefiniowa sposb kodowania przesyanych znakw. Najlepiej
jest wybra uniwersalny standard kodowania UTF-8:
mysql_query('SET NAMES "utf8"');

Teraz musimy zadecydowa, ktrej bazy bdziemy uywa w trakcie caego poczenia. Oczywicie, decyzj mona
zmienia w czasie pracy (a nawet selektywnie wybiera tabele
z dowolnych baz), jednak w wikszoci przypadkw jednokrotne dokonanie wyboru zaraz po nawizaniu poczenia
cakowicie wystarcza. Do wyboru bazy danych suy instrukcja
mysql_select_db(), ktrej parametrem jest nazwa bazy danych;
zwracana warto oznacza, czy wybr si uda (true), czy te
by z jakiego powodu niemoliwy (false):
$ok = mysql_select_db('szkola');
if ($ok === false) die('Nie mona byo wybra bazy danych '
.'z powodu bdu: ' . mysql_error());

Teraz mona ju wydawa polecenia odczytujce, dodajce


lub modyfikujce rekordy danych; zostan one omwione
w kolejnych punktach. Na koniec pracy naley jednak zamkn
poczenie z baz. Suy do tego instrukcja mysql_close():
mysql_close($baza);

25. Jak nawizywa poczenie z baz danych z poziomu kodu PHP? 75

Tworzenie serwisw WWW


Cay szkielet programu korzystajcego z bazy danych bdzie
zatem wyglda nastpujco:
$baza = mysql_connect('localhost', 'baza', 'helion');
if ($baza === false) die('Nie mona byo nawiza poczenia
z baz '
.'z powodu bdu: ' . mysql_error());
$ok = mysql_select_db('szkola');
if ($ok === false) die('Nie mona byo wybra bazy danych '
.'z powodu bdu: ' . mysql_error());
// --- tutaj instrukcje korzystajce z bazy danych --mysql_close($baza);

Szkielet ten nie bdzie ju powtarzany w kolejnych wiczeniach: po prostu instrukcje korzystajce z bazy danych
musz znale si midzy sekwencj instrukcji nawizujcych poczenie z baz a instrukcj mysql_close() zamykajc
to poczenie.

76 25. Jak nawizywa poczenie z baz danych z poziomu kodu PHP?

Tworzenie serwisw WWW

brew pozorom odczytanie danych z bazy i ich wywietlenie zazwyczaj wymaga znacznie wicej kodu ni pozostae, na pierwszy rzut oka bardziej skomplikowane operacje.
Gdy jednak pozna si schemat wykorzystywany za kadym
razem, gdy chce si wywietli dane z bazy na stronie, ilo
kodu przestaje mie znaczenie.
Pobranie danych wymaga przesania bazie danych zapytania (ang. query) SQL. W odpowiedzi na zapytanie baza
danych odsya zbir rekordw speniajcych to zapytanie.
Zadaniem programu jest odczytanie kadego rekordu (jeden
po drugim) to, co program zrobi z tymi rekordami,
jest ju kwesti fantazji programisty.
Zacznijmy od przygotowania zapytania. Zapytanie
to po prostu tekst polecenia przesyanego bazie danych; dlatego
przygotujemy je w zmiennej tekstowej tak, jakbymy zapisywali
kawaek tekstu w pamici. Zapytanie moe mie na przykad
nastpujc posta:

26. Jak
umieszcza
na stronie
WWW dane
pochodzce
z bazy?

$zapytanie = 'SELECT imie, nazwisko, telefon FROM osoby';

Zapytanie to czyta si w nastpujcy sposb: pobierz


(SELECT) kolumny imie, nazwisko i telefon z tabeli (FROM)
o nazwie osoby, z aktualnie wybranej bazy danych.
Teraz trzeba wykona to zapytanie. Suy do tego instrukcja mysql_query(), pobierajca jako parametr tekst zapytania,
a zwracajca wynik lub w przypadku bdu warto
logiczn false:
$odpowiedz = mysql_query($zapytanie);
if ($odpowiedz === false) die('Nie mona byo odebra danych
z bazy '
.'z powodu bdu: ' . mysql_
error());

W tym momencie mona ju korzysta z odczytanych


danych. Oczywicie, zajmuj one nieco pamici, gdy wic ju
nie bd potrzebne (na przykad wszystkie zostan wywietlone na stronie), naley zwolni pami odpowiedzi za pomoc
instrukcji mysql_free_result():
mysql_free_result($odpowiedz);

77

Tworzenie serwisw WWW


Interpretacj odpowiedzi serwera trzeba realizowa w ptli,
by po kolei rekord po rekordzie odczytywa przesane
dane i wywietla je na stronie. Zacznijmy od przygotowania
szkicu tabeli:
<table border="1">
<thead>
<tr>
<th>Lp</th>
<th>Imi</th>
<th>Nazwisko</th>
<th>Nr telefonu</th>
</tr>
</thead>
<tbody>
</tbody>
</table>

Teraz wewntrz elementu <tbody>, stanowicego tre


naszej tabeli, musimy wstawi fragment kodu PHP odczytujcego dane zwrcone jako rezultat zapytania:
<tbody>
<?php
$lp = 0;
while ($rekord = mysql_fetch_assoc($odpowiedz)) {
$lp = $lp + 1;
$imie = $rekord['imie'];
$nazwisko = $rekord['nazwisko'];
$nrtelefonu = $rekord['telefon'];
echo '

<tr>'."\r\n";

echo '

<td>'.$lp.'</td>'."\r\n";

echo '

<td>'.$imie.'</td>'."\r\n";

echo '

<td>'.$nazwisko.'</td>'."\r\n";

echo '
echo '

<td>'.$nrtelefonu.'</td>'."\r\n";
</tr>'."\r\n";

}
?>
</tbody>

78 26. Jak umieszcza na stronie WWW dane pochodzce z bazy?

Tworzenie serwisw WWW


Instrukcja mysql_fetch_assoc() pobiera kolejny rekord
odpowiedzi i umieszcza go w tablicy jzyka PHP, pozwalajc odwoywa si do poszczeglnych elementw za pomoc
nazw pl znakomicie upraszcza to programowanie. Ptla
while bdzie dziaaa tak dugo, a kolejny odczytany rekord
nie bdzie mia wartoci logicznej false oznaczajcej, e napotkany zosta koniec danych. Wewntrz ptli nastpuje przepisanie zawartoci poszczeglnych pl, przechowywanej w tablicy
$rekord, do samodzielnych zmiennych (nie jest to konieczne
tutaj kod zosta przygotowany z myl o wikszej czytelnoci, a nie wydajnoci czy zwartoci). Nastpnie generowany
jest kawaek kodu XHTML tworzcy nowy wiersz tabeli.
Po zapisaniu tego fragmentu i wywietleniu strony zobaczysz, e program faktycznie dziaa i wywietla na Twojej
wasnej stronie WWW dane pobrane z powanej bazy danych
SQL (rysunek 26.1). Czy byo to takie trudne? Chyba nie.

Rysunek 26.1. Dziaajca


strona WWW pobiera dane
z bazy danych

Sprbujmy teraz zmodyfikowa zapytanie tak, aby baza filtrowaa wyniki i wywietlaa wycznie dane uczniw, ignorujc
nauczycieli i pracownikw technicznych. Wymaga to tylko
drobnej zmiany w tekcie zapytania SQL:
$zapytanie = 'SELECT imie, nazwisko, telefon FROM osoby WHERE
stanowisko="u"';

26. Jak umieszcza na stronie WWW dane pochodzce z bazy? 79

Tworzenie serwisw WWW


Zapytanie (wraz z dopisanym, pogrubionym powyej fragmentem) czytamy: pobierz (SELECT) kolumny imie, nazwisko i telefon z tabeli (FROM) o nazwie osoby, uwzgldniajc
tylko te rekordy (WHERE), w ktrych warto pola stanowisko
jest rwna u.
Jak wida, wikszo czarnej roboty mona zrzuci na baz
danych (rysunek 26.2). Jeeli zastanawiao Ci kiedy, ile pracy
musieli woy programici duych serwisw internetowych,
by oferoway one moliwo przegldania, sortowania i filtrowania wielkich zbiorw danych, teraz masz ju odpowied:
wymagao to dopisania kilku wierszy kodu, modyfikujcych
tre zapytania SQL. Reszt pracy wykonuje sama baza
danych.

Rysunek 26.2. Ta sama strona


po dodaniu kilku liter
w tekcie zapytania ju potra
ltrowa dane pobierane z bazy

80 26. Jak umieszcza na stronie WWW dane pochodzce z bazy?

Tworzenie serwisw WWW

odanie informacji do bazy danych okazuje si cakiem


proste najwicej pracy trzeba woy w opracowanie
formularza XHTML, w ktrym uytkownik strony bdzie
wpisywa informacje. Zacznijmy zatem od przygotowania
takiego formularza umoliwiajcego dodawanie nowych osb
do bazy:

27. Jak
wprowadza
za pomoc
strony WWW
nowe dane
do bazy?

<form name="dodawanie" method="POST">


<fieldset>
<legend>Dane osobowe</legend>
<label for="imie">Imi:</label><br />
<input name="imie" id="imie" maxlength="50" /><br />
<label for="nazwisko">Nazwisko:</label><br />
<input name="nazwisko" id="nazwisko" maxlength="80" /><br />
<label for="dataurodzenia">Data urodzenia:</label><br />
<input name="dataurodzenia" id="dataurodzenia" maxlength="20"
/><br />
<label for="miejsceurodzenia">Miejsce urodzenia:</label><br />
<input name="miejsceurodzenia" id="miejsceurodzenia"
maxlength="40" /><br />
<label for="adreskor">Adres do korespondencji:</label><br />
<input name="adreskor" id="adreskor" maxlength="100" /><br />
<label for="telefon">Telefon kontaktowy:</label><br />
<input name="telefon" id="telefon" maxlength="20" /><br />
<label for="stanowisko">Stanowisko:</label><br />
<select name="stanowisko" id="stanowisko">
<option value="u">Ucze</option>
<option value="n">Nauczyciel</option>
<option value="t">Pracownik techniczny</option>
</select><br />&nbsp;<br />
<input type="submit" value="Dodaj" />
</fieldset>
</form>

81

Tworzenie serwisw WWW


Po klikniciu przycisku Dodaj na formularzu (rysunek 27.1)
wywoana zostanie ta sama strona PHP, jednak tym razem
zostan przesane do niej informacje zawarte w formularzu.
Musimy zatem zareagowa na otrzymane dane i wykona
zapytanie SQL, ktrego rezultatem bdzie dodanie nowego
rekordu.
Wskazwka
Moe si wydawa, e zapytanie SQL powinno tylko pyta
serwer bazy danych o informacje. Zapytaniem SQL nazywamy jednak kad operacj zlecan bazie danych, niezalenie
od tego, czy pytamy baz danych o informacje, czy te umieszczamy w niej dane lub modyfikujemy istniejce rekordy.

Rysunek 27.1. Gotowy


formularz XHTML

Na pocztku strony PHP sprawdzimy zatem, czy uytkownik przesa choby samo imi. Jeli tak nawiemy poczenie z baz danych i przygotujemy si do wysyki. To ten sam
kod, ktry wprowadzalimy przy pobieraniu danych z bazy:
<?php
if (isset($_POST['imie'])) {
$baza = mysql_connect('localhost', 'baza', 'helion');
if ($baza === false) die('Nie mona byo nawiza poczenia
z baz '
.'z powodu bdu: ' . mysql_error());
mysql_query('SET NAMES "utf8"');
$ok = mysql_select_db('szkola');
if ($ok === false) die('Nie mona byo wybra bazy danych '
.'z powodu bdu: ' . mysql_error());
// --- tutaj bd instrukcje obsugujce wysyk danych --mysql_close($baza);
}
?>

82 27. Jak wprowadza za pomoc strony WWW nowe dane do bazy?

Tworzenie serwisw WWW


Teraz wystarczy przygotowa tekst zapytania SQL i zrealizowa to zapytanie. Niestety, musimy przy okazji zabezpieczy
te nasz baz przed atakami typu SQL Injection, ktre mog
spowodowa niewyobraalne straty informacji lub umoliwi nieuprawniony dostp do danych. Warto te przy okazji
sprawdzi, czy uytkownik nie zapomnia wypeni jednego
z pl: lepiej nakaza mu si cofn i sprawdzi dane, ni doda
do bazy niekompletny wpis. Zacznijmy zatem od przepisania
pl do zmiennych pomocniczych:
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$dataurodzenia = $_POST['dataurodzenia'];
$miejsceurodzenia = $_POST['miejsceurodzenia'];
$adreskor = $_POST['adreskor'];
$telefon = $_POST['telefon'];
$stanowisko = $_POST['stanowisko'];

Teraz sprawdzimy wszystkie pola (zasadniczo zatem zmienne). Nie trzeba sprawdza pola telefon, gdy w zasadzie osoba
moe nie posiada telefonu, oraz pola stanowisko, gdy powinno
zosta wybrane z listy (zreszt sama baza danych odrzuci niepoprawne wartoci tego pola). Reszt trzeba zweryfikowa:
if (($imie == '') || ($nazwisko == '') || ($dataurodzenia ==
'')
|| ($miejsceurodzenia == '') || ($adreskor == '')) {
echo '<p style="color: red;">Nie wypenie jednego
z pl!</p>';
echo '<p>Cofnij si i popraw swoj omyk.</p>';
} else {
// --- tutaj wysyka danych do bazy --}

Sprawdzamy tutaj, czy ktrekolwiek z pl jest puste. Jeeli


cho jedno okae si niewypenione, wywietlamy komunikat
o bdzie i kontynuujemy wywietlanie pustego formularza
(pozostawiam Tobie zmodyfikowanie strony tak, by wprowadzone wczeniej wartoci zostay ponownie wywietlone
w polach formularza). Jeeli wszystko bdzie w porzdku,
przejdziemy do kodu dodajcego wpis do bazy.
27. Jak wprowadza za pomoc strony WWW nowe dane do bazy? 83

Tworzenie serwisw WWW


Kolejny krok bdzie polega na zabezpieczeniu si przed
atakami SQL Injection:
$imie = mysql_real_escape_string($imie);
$nazwisko = mysql_real_escape_string($nazwisko);
$dataurodzenia = mysql_real_escape_string($dataurodzenia);
$miejsceurodzenia = mysql_real_escape_string($miejsceurodz
enia);
$adreskor = mysql_real_escape_string($adreskor);
$telefon = mysql_real_escape_string($telefon);
$stanowisko = mysql_real_escape_string($stanowisko);

Teraz dopiero moemy przystpi do stworzenia zapytania


SQL:
$zapytanie = 'INSERT INTO osoby SET '
.'imie="'.$imie.'", '
.'nazwisko="'.$nazwisko.'", '
.'dataurodzenia="'.$dataurodzenia.'", '
.'miejsceurodzenia="'.$miejsceurodzenia.'", '
.'adreskor="'.$adreskor.'", '
.'telefon="'.$telefon.'", '
.'stanowisko="'.$stanowisko.'"';

Zapytanie moe si wydawa na pierwszy rzut oka skomplikowane, ale jest to spowodowane wycznie du liczb
operacji czenia tekstu i zmiennych. Tak naprawd zapytanie
przybierze nastpujc posta:
INSERT INTO osoby SET imie="Jan", nazwisko="Kowalski",
dataurodzenia="1973-08-11", ...

co czytamy: wstaw (INSERT) do tabeli (INTO) o nazwie osoby nowy rekord, ustawiajc (SET) wartoci pl: imie na Jan,
nazwisko na Kowalski, dataurodzenia na 1973-08-11

84 27. Jak wprowadza za pomoc strony WWW nowe dane do bazy?

Tworzenie serwisw WWW


Teraz wystarczy wykona zapytanie i sprawdzi, czy si
powiodo. Nawet nie trzeba zwalnia pamici zapytanie
INSERT nie zwraca (poza ewentualn informacj o bdzie)
wyniku, o ktry naleaoby si martwi:
$ok = mysql_query($zapytanie);
if ($ok === false) die('Nie mona byo doda danych do bazy
'
.'z powodu bdu: ' . mysql_error());

Gotowe! Gdy teraz wypenimy formularz i klikniemy


Dodaj, pozornie nic si nie stanie, jednak wystarczy ponownie
odwiedzi stron wywietlajc zawarto bazy, by zauway,
e zosta do niej dopisany nowy rekord (rysunek 27.2).

Rysunek 27.2. W tabeli danych


pojawi si nowy wpis, wprowadzony
naszym wasnym formularzem

Ze wzgldu na to, e poskadanie kodu strony z powyszych


fragmentw moe by kopotliwe, przyda si na pewno kompletna jego tre. To duo kodu jednak gwnie ze wzgldu
na powtarzalno (obsugujemy wiele pl danych) oraz zabezpieczenia. Samej obsugi bazy danych jest tutaj niewiele:

27. Jak wprowadza za pomoc strony WWW nowe dane do bazy? 85

Tworzenie serwisw WWW


<html>
<head><title>Baza danych</title></head>
<body>
<?php
if (isset($_POST['imie'])) {
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$dataurodzenia = $_POST['dataurodzenia'];
$miejsceurodzenia = $_POST['miejsceurodzenia'];
$adreskor = $_POST['adreskor'];
$telefon = $_POST['telefon'];
$stanowisko = $_POST['stanowisko'];
if (($imie == '') || ($nazwisko == '') || ($dataurodzenia == '')
|| ($miejsceurodzenia == '') || ($adreskor == '')) {
echo '<p style="color: red;">Nie wypenie jednego z pl!</p>';
echo '<p>Cofnij si i popraw swoj omyk.</p>';
} else {
$imie = mysql_real_escape_string($imie);
$nazwisko = mysql_real_escape_string($nazwisko);
$dataurodzenia = mysql_real_escape_string($dataurodzenia);
$miejsceurodzenia = mysql_real_escape_string($miejsceurodzenia);
$adreskor = mysql_real_escape_string($adreskor);
$telefon = mysql_real_escape_string($telefon);
$stanowisko = mysql_real_escape_string($stanowisko);
$baza = mysql_connect('localhost', 'baza', 'helion');
if ($baza === false) die('Nie mona byo nawiza poczenia z baz '
.'z powodu bdu: ' . mysql_error());
mysql_query('SET NAMES "utf8"');
$ok = mysql_select_db('szkola');
if ($ok === false) die('Nie mona byo wybra bazy danych '
.'z powodu bdu: ' . mysql_error());

86 27. Jak wprowadza za pomoc strony WWW nowe dane do bazy?

Tworzenie serwisw WWW


$zapytanie = 'INSERT INTO osoby SET '
.'imie="'.$imie.'", '
.'nazwisko="'.$nazwisko.'", '
.'dataurodzenia="'.$dataurodzenia.'", '
.'miejsceurodzenia="'.$miejsceurodzenia.'", '
.'adreskor="'.$adreskor.'", '
.'telefon="'.$telefon.'", '
.'stanowisko="'.$stanowisko.'"';
$ok = mysql_query($zapytanie);
if ($ok === false) die('Nie mona byo doda danych do bazy '
.'z powodu bdu: ' . mysql_error());
mysql_close($baza);
}
}
?>
<form name="dodawanie" method="POST">
<fieldset>
<legend>Dane osobowe</legend>
<label for="imie">Imi:</label><br />
<input name="imie" id="imie" maxlength="50" /><br />
<label for="nazwisko">Nazwisko:</label><br />
<input name="nazwisko" id="nazwisko" maxlength="80" /><br />
<label for="dataurodzenia">Data urodzenia:</label><br />
<input name="dataurodzenia" id="dataurodzenia" maxlength="20" /><br />
<label for="miejsceurodzenia">Miejsce urodzenia:</label><br />
<input name="miejsceurodzenia" id="miejsceurodzenia" maxlength="40" /><br />
<label for="adreskor">Adres do korespondencji:</label><br />
<input name="adreskor" id="adreskor" maxlength="100" /><br />
<label for="telefon">Telefon kontaktowy:</label><br />
<input name="telefon" id="telefon" maxlength="20" /><br />
<label for="stanowisko">Stanowisko:</label><br />

27. Jak wprowadza za pomoc strony WWW nowe dane do bazy? 87

Tworzenie serwisw WWW


Cig dalszy z poprzedniej strony:

<select name="stanowisko" id="stanowisko">


<option value="u">Ucze</option>
<option value="n">Nauczyciel</option>
<option value="t">Pracownik techniczny</option>
</select><br />&nbsp;<br />
<input type="submit" value="Dodaj" />
</fieldset>
</form>
</body>
</html>

88 27. Jak wprowadza za pomoc strony WWW nowe dane do bazy?

You might also like