Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
PHP5, Apache
i MySQL. Od podstaw
Autor: Zesp autorw
Tumaczenie: Rafa Joca
ISBN: 83-7361-997-6
Tytu oryginau: Beginning PHP5, Apache,
MySQL Web Development
Format: B5, stron: 784
Tworzenie dynamicznych witryn WWW za pomoc technologii open source
Zainstaluj i skonfiguruj serwery oraz narzdzia
Pocz aplikacj internetow z baz danych
Napisz samodzielnie system zarzdzania treci witryny
PHP, Apache i MySQL to najpopularniejsze obecnie technologie suce do tworzenia
i udostpniania w sieci dynamicznych witryn WWW. czy je jedna wsplna cecha
wszystkie dostpne s na licencji open source, co oznacza, e korzystanie z nich nie
wie si z adnymi opatami. PHP to jzyk programowania sucy do pisania aplikacji
internetowych, MySQL to baza danych, ktra przechowuje informacje wywietlane
na stronach, a Apache to serwer WWW, dziki ktremu witryny te dostpne s
w internecie. Za pomoc tych narzdzi tworzone s portale, sklepy internetowe,
fora dyskusyjne i inne strony, z ktrych codziennie korzystaj dziesitki tysicy
uytkownikw sieci.
PHP5, Apache i MySQL. Od podstaw to podrcznik dla tych uytkownikw, ktrzy
chc pozna sposoby tworzenia dynamicznych witryn WWW w oparciu o te
technologie. Przedstawia zasady pisania aplikacji internetowych, stosowania w nich
formularzy z mechanizmem weryfikacji poprawnoci wpisanych danych, czenia
aplikacji z baz danych i modyfikowania elementw graficznych za pomoc PHP.
Opisano tu take sposoby przechowywania danych uytkownika w plikach cookie,
mechanizmy wysyania poczty elektronicznej, obsugi bdw i ograniczania dostpu
do okrelonych obszarw witryny za pomoc nazwy uytkownika i hasa. Kade
zagadnienie zaprezentowano na rzeczywistych przykadach dynamicznych witryn WWW.
Instalacja i konfiguracja Apache, PHP i MySQL-a
Podstawowe elementy jzyka PHP
Komunikacja z baz danych
Wywietlanie oraz modyfikowanie danych
Obsuga formularzy i weryfikacja poprawnoci wpisw
Korzystanie z elementw graficznych i zastosowanie biblioteki GD
Obsuga bdw
Komunikacja za pomoc poczty elektronicznej
Mechanizmy logowania i personalizacji serwisu
System zarzdzania treci serwisu WWW
Lista mailingowa i forum dyskusyjne
Elementy sklepu internetowego
Analiza ruchu w witrynie WWW za pomoc statystyk
Poznaj najnowsze technologie tworzenia dynamicznych witryn WWW
Spis treci
O autorach ................................................................................................................................................. 11
Cz I Wstp
13
39
Spis treci
275
Spis treci
Spis treci
Dodatki
643
stae i zmienne,
formularze HTML,
konstrukcje if-else,
funkcje,
Pod koniec rozdziau, po wykonaniu wszystkich wicze Wyprbuj, nikt nie powinien
mie najmniejszych problemw z utworzeniem prostego formularza uwierzytelniania, dania
uytkownikom moliwoci zobaczenia recenzji ulubionego filmu lub listy 10 najlepszych
obrazw oraz zaoferowania ponumerowanej listy filmw bazujcej na tym, ile bd oni
chcieli zobaczy. Po drobnych modyfikacjach bdzie moga to by alfabetyczna lista filmw.
42
Cz II
Rozdzia 2.
Q
43
Przykad 2.
<?php
// sprawd, czy uytkownik ma na imi Jan, zanim wywietlisz zawarto witryny
if ($_POST["fname"] == "Jan")
{
echo "<p>";
echo "Witaj ";
echo $_POST['fname'];
echo "</p>";
}
else
{
echo "<h2>";
echo "Nie masz na imi Jan, wic nie moesz wej na t witryn.";
echo "</h2>";
}
?>
44
Cz II
Chocia drugi przykad wymaga wicej pisania, atwiej w nim zlokalizowa bdy w skadni
lub wyczy dany fragment kodu w trakcie przeprowadzania testw. Jest to szczeglnie
wane, gdy dopiero zaczyna si przygod z jzykiem. Po nabraniu wprawy mona pisa
bardziej zwizy kod z przykadu 1.
Spjno. Bloki dobrze napisanego kodu zawsze wygldaj tak samo i maj te
same wcicia, skrty itp. Znacznie uatwia to pniejsze czytanie kodu. Wspania
cech jzyka PHP jest to, e nie troszczy si o wcicia i znaki tabulacji, wic mona
stosowa wasny styl, o ile jest on jednolity i wygodny.
Poniewa czsto istnieje wicej ni jedna skadnia zwizana z wybranym zagadnieniem,
dobrzy programici wybieraj jedn skadni i stosuj si do niej przez cay czas.
Z punktu widzenia interpretera kodu PHP dwa ponisze fragmenty s sobie
rwnowane:
<?php
// tutaj znajduje si kod PHP;
?>
<?
// tutaj znajduje si kod PHP;
?>
Najlepiej wybra jedno z rozwiza i trzyma si go cay czas przy pisaniu kodu.
Q
Czste komentarze. Im wicej komentarzy zawiera kod, tym lepiej. Cho nie jest
to a tak istotne w krtkich, niewielkich programach, wraz ze wzrostem ich zoonoci
coraz trudniej zapamita, co zostao zrobione, dlaczego zostao napisane i dlaczego
dane rozwizanie jest najlepsze. Szczegowe komentarze pozwalaj przypomnie
sobie dawne motywy. Gdy nad projektem pracuje wielu programistw, komentarze
znaczco uatwiaj zrozumienie kodu napisanego przez inn osob.
Rozdzia 2.
Usuwanie bdw. Wiedza na temat tego, co jest powodem bdu, jest bezcenna.
Gdy stosuje si komentarze, atwiej zrozumie logik programu. Jeeli dodatkowo
stosuje si numeracj wierszy i jednolite formatowanie kodu, odnalezienie
problematycznego fragmentu zajmuje jedynie chwil.
45
Pierwszy program
Chyba nie mona napisa prostszego programu od poniszego, ale jego przeledzenie pozwoli zrozumie wyniki dziaania skryptw PHP. Funkcja echo, ktr mona zauway
w przedstawionym poniej skrypcie, jest jedn z najczciej stosowanych funkcji jzyka PHP.
Suy do wysyania tekstu (zawartoci zmiennych i nie tylko) do przegldarki internetowej.
PHP. Jak nietrudno zauway, kod PHP znikn i pozosta jedynie kod HTML.
4. Dodaj wyrniony wiersz z poniszego kodu, aby lepiej zrozumie istot dziaania
skryptw PHP.
46
Cz II
Rysunek 2.1.
<html>
<head>
<title>Pierwszy program w PHP</title>
</head>
<body>
<?php
echo "Jestem drwalem.";
echo "I jest mi dobrze.";
?>
</body>
</html>
zostay zczone razem bez adnych przerw, cho w kodzie PHP znajdoway si
w dwch osobnych wierszach.
Jak to dziaa?
Gdy przegldarka internetowa wywouje program PHP, najpierw przeszukuje si cay kod
wiersz po wierszu w poszukiwaniu sekcji PHP (kodu PHP umieszczonego w znacznikach),
a nastpnie przetwarza si je po kolei. Serwer traktuje cay kod PHP jak jeden dugi wiersz,
wic dwa powysze wiersze zostay zczone na ekranie. Po przetworzeniu kodu PHP serwer
wraca do pozostaego jeszcze kodu i wysya go do przegldarki wraz z kodem sekcji PHP.
Rozdzia 2.
47
2. Zapisz plik i przeaduj stron WWW. Uzyskany wynik powinien wyglda tak jak
na rysunku 2.2.
Rysunek 2.2.
Jak to dziaa?
Funkcja echo po prostu wysya do przegldarki to, co zostao jej przekazane, niezalenie od
tego, czy jest to zwyky tekst, kod HTML, zmienna itp. Aby to udowodni, w przedstawionym
przykadzie po prostu przekazalimy kod HTML, modyfikujc nastpujce wiersze:
48
Cz II
Utrzymujemy skrypt PHP zwartym, gdy nie przeskakujemy cay czas midzy
kodem PHP i HTML.
Jeli zajrzy si do kodu rdowego strony WWW, da si zauway, e kod HTML zosta
wstawiony zgodnie z oczekiwaniami.
Pamitaj, e zasady kodu PHP obowizuj take wtedy, gdy stosuje si kod
HTML. Czasami zapomina si, piszc duszy fragment kodu HTML w sekcji PHP,
e na kocu instrukcji echo trzeba umieszcza cudzysowy zamykajce i redniki.
Nie umieszczaj zbyt duo kodu HTML w sekcjach PHP. Jeli jest rodek sekcji
PHP, a kod HTML staje si coraz duszy, warto pomyle o zakoczeniu takiej
sekcji i rozpoczciu pisania wycznie w kodzie HTML. Rozwamy dwa ponisze
przykady:
Przykad 1.
<?php
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
Rozdzia 2.
49
Przykad 2.
<table width='100%' border='2' bgcolor='#FFFFFF'>
<tr>
<td width='50%'>
<font face='Verdana, Arial' size='2'>
Imi:
</font>
</td>
<td width='50%'>
<font face='Verdana, Arial' size='2'>
<?php
echo $_POST['fname'];
?>
</font>
</td>
</tr>
</table>
Stae
Staa to symbol zastpczy dla wartoci, z ktrej korzysta si w kodzie. Na og stae pisze
si wielkimi literami (aby atwiej odnale je w kodzie), a ich wartoci definiuje si przed
uyciem symbolu zastpczego. Nazwy staych musz zaczyna si od litery lub podkrelenia
i nie mog zaczyna si od cyfry. Interpreter skryptw zwraca uwag na wielko liter.
Stae definiuje si za pomoc funkcji define(). Po zdefiniowaniu staej nie mona jej zmieni
ani usun.
50
Cz II
<html>
<head>
<title>Witryna o filmach</title>
</head>
<body>
<?php
define ("FAVMOVIE", "ywot Briana");
echo "Mj ulubiony film to ";
echo FAVMOVIE;
?>
</body>
</html>
Jak to dziaa?
Definiujc sta o nazwie FAVMOVIE, przypisalimy jej warto ywot Briana, ktra moe
zosta uyta i wywietlona w przyszoci. Cho staej nie mona zmieni ani usun, jest ona
dostpna w dowolnym miejscu skryptu.
Zmienne
W odrnieniu od staych, zmienne, jak sama nazwa wskazuje, potrafi si zmienia rne
fragmenty programu mog modyfikowa ich zawarto. Zmienne nie musz by definiowane
lub deklarowane. Wystarczy co do nich przypisa, gdy jest to konieczne. Zmienne mog
przechowywa dane tekstowe lub numeryczne.
Rozdzia 2.
51
Zmienne poprzedza si znakiem dolara ($), a wielko liter ma znaczenie (innymi sowy,
$WpisanaData i $wpisanaData to dwie rne zmienne). Pierwszy znak zmiennej musi by
znakiem podkrelenia lub liter i nie moe by cyfr.
W poprzedniej wersji jzyka PHP (4.) zmienne nie byy przekazywane przez referencj,
jeli nie poprzedzio si ich znakiem ampersanda (&). W PHP5 wszystkie zmienne s
przekazywane przez referencj i nie jest do tego wymagana adna dodatkowa skadnia. W znaczcy sposb poprawia to szybko i elastyczno programw. Nie naley
si przejmowa, jeli to, co tu napisalimy, nie jest dla kogo jasne. Staje si to
istotne dopiero w bardziej zoonych aplikacjach.
52
Cz II
Jak to dziaa?
Warto 5 jest przypisywana do zmiennej movierate. Warto zauway, e nie jest to
zmienna tekstowa, ale liczbowa. Poniszy wiersz spowodowa przypisanie zmiennej jako
cigu znakw.
$movierate = "5";
Jzyk PHP posiada wiele wbudowanych funkcji matematycznych, z ktrych mona korzysta
dla zmiennych zawierajcych liczby. Oto kilka z nich:
Q