letm² nßstin pro zaΦßteΦnφky
Snadn² zßpis - Zpracovßnφ formulß°∙ - Spoluprßce s databßzemi - Vklßdßnφ soubor∙ - Odesφlßnφ mail∙ - Kombinace formulß°∙, databßze a poÜty - A dalÜφ...
Pokud mßte nainstalovanß PHP na serveru nebo u sebe, m∙₧ete testovat. Co to vÜechno dokß₧e:
PHP skripty jsou programy b∞₧φcφ na serveru. PφÜou se podobn∞ jako normßlnφ HTML, jenom obΦas obsahujφ <? kousek PHP k≤du ?>, kter² je serverem p°i odesφlßnφ vyhodnocovßn.
Tak₧e kdo umφ HTML a je zvykl² v n∞m psßt strßnky, m∙₧e si nynφ vyÜperkovat strßnku n∞jak²m PHP p°φkazem. Prost∞ napφÜe znaky <? , vlo₧φ PHP k≤d, uzav°e to znaky ?> a je hotovo.
<body>
<p>┌pln∞ normßlnφ text
<? echo "s
kouskem textu, kter² napsalo PHP" ?>
.</p>
Pravd∞podobn∞ nejpou₧φvan∞jÜφm PHP p°φkazem je echo, kter² n∞co vypφÜe do v²stupu strßnky.
Prom∞nnΘ zaΦφnajφ znakem dolaru, p°φkazy se ukonΦujφ st°ednφkem. Zßpis jazyka PHP je velmi podobn² jazyk∙m C, Java nebo Perl.
ZaΦφnajφcφ autory strßnek v₧dycky mrzφ, ₧e zajiÜt∞nφ funkΦnosti formulß°∙ nenφ ₧ßdnß sranda. Jakmile ale pochopφte zßklady formulß°∙ (vΦetn∞ zp∙sobu, kter²m p°edßvajφ data), zpracovßnφ v PHP bude snadnΘ.
Budu mφt dva soubory
Soubor formular1.html (Vypisuji bez hlaviΦek.):
<body>
<form method="GET" action="zpracovani_formulare1.php" >
<p>Zadejte oblφbenΘ jφdlo:
<input type="text" name="jidlo" size="20">
<input type="submit" value="Odeslat"></p>
</form>
</body>
A soubor zpracovani_formulare.php:
<body>
<H1>Zpracovßnφ formulß°e</h1>
<p>V²born∞! Zajdeme si n∞kdy na Φaj a k tomu si dßme
<? echo $jidlo ?>!
</body>
P°φklad si m∙₧ete zobrazit (pozn.: nebude fungovat ve sta₧enΘ verzi).
VÜimn∞te si prosφm t∞chto v∞cφ:
PHP p°φkaz echo pak u₧ jenom vypφÜe hodnotu prom∞nnΘ a celΘ to odeÜle prohlφ₧eΦi. Samoz°ejm∞ se s tou prom∞nnou dajφ d∞lat i ·pravy, nap°. zjistit, zda nenφ prßzdnß atd.; PHP mß celou °adu p°φkaz∙.
Tolik jenom drobn² nßstin o zpracovßnφ formulß°∙ v PHP.
Kdo n∞kdy d∞lß strßnky se slo₧it∞jÜφ navigacφ a designem, tomu v HTML velmi chybφ znaΦka, kterß by do urΦitΘho mφsta k≤du vlo₧ila jin² soubor. PHP to umφ.
Na danΘ mφsto se prost∞ napφÜe
<? include "cesta/jmeno_souboru"; ?>
a je hotovo. P°i odesφlßnφ souboru klientovi tam server vlo₧φ obsah toho
souboru.
NejΦast∞ji se to pou₧φvß prßv∞ na vklßdßnφ r∙zn²ch zßhlavφ, zßpatφ, navigaΦnφch sloupc∙ atp. Dß se ale vlo₧it i jin² PHP skript, co₧ mß r∙znΘ v²hody, zejmΘna se tak naΦφtajφ u₧ivatelskΘ PHP knihovny.
Databßze musφ b∞₧et na serveru. Je to program, kter² umφ uklßdat informace do tabulek, rychle je t°φdit, filtrovat a poskytovat jin²m program∙m -- t°eba modulu PHP. Je to hlavnφ zbra≥ PHP skript∙.
P°evß₧nß v∞tÜina po°ßdn²ch internetov²ch server∙ n∞jak²m zp∙sobem pracuje s databßzφ.
Databßzφ existuje hodn∞ druh∙, nap°φklad MS Acces, PostgreeSQL, MySQL atd. Jako databßze se dß dokonce vyu₧φt nap°φklad tabulka Excelu (nenφ to ale praktickΘ). Nejoblφben∞jÜφ mezi programßtory PHP je patrn∞ databßze MySQL, proto₧e je rychlß, existuje pro vÜechny platformy a je zadarmo (pro vlastnφ nebo nekomerΦnφ pou₧itφ).
Ke ka₧dΘ databßzi p°istupuje PHP pomocφ jin²ch funkcφ. NaÜt∞stφ jsou si ty funkce pro r∙znΘ databßze dost podobnΘ; v∞tÜina autor∙ navφc pracuje pouze s jednou databßzφ, tak₧e jim staΦφ nauΦit se jednu sadu funkcφ. TakΘ u₧ existujφ univerzßlnφ rozhranφ (nap°. ODBC).
P°φmo k databßzi se p°istupuje pomocφ jazyka SQL. Je to jazyk velmi jednoduch² a standardnφ. P°φkazy SQL se pφÜφ jako parametry urΦit²ch PHP funkcφ. Pak u₧ vlastn∞ soubor obsahuje t°i jazyky: HTML, PHP a SQL. NaÜt∞stφ to nenφ takov² zmatek, proto₧e SQL p°φkazy jsou krßtkΘ.
Tak t°eba internetov² zpravodajsk² server mß Φlßnky ulo₧enΘ v databßzi "noviny", jejφ₧ hlavnφ tabulka se jmenuje clanky a m∙₧e mφt tuto strukturu:
id | titulek | uvod | clanek | rubrika | autor | datum |
---|---|---|---|---|---|---|
1 | Pes nep°φtelem | Kdysi jsme referovali o zvlßÜtnφm vztahu koΦek a ps∙. Dnes dalÜφ informace. | ProΦ se psi bojφ koΦek? Proto₧e je ₧erou. Ale ne vÜechny... | Zvφ°ata | AjΦi | 2001-11-29 |
2 | ProΦ mßm Paegas | Jakß kritΘria u m∞ vedla p°i v²b∞ru operßtora? | Proto₧e Paegas inzeruje v Respektu... | Komunikace | Yuh∙ | 2001-11-30 |
Tato tabulka m∙₧e b²t v praxi velmi velkß. Nenφ nikde vid∞t, jen je ulo₧ena v databßzi. Pomocφ PHP a SQL se z nφ ale dajφ tahat data.
Nßsledujφcφ k≤d je straÜideln². Nebojte se ho. V praxi se jenom kopφruje a m∞nφ se ·daje. V p°φkladu p°edpoklßdßm, ₧e moje databßze je MySQL.
V prvnφ fßzi p°φkladu se navazuje spojenφ s databßzφ. Ta obvykle sφdlφ na tomtΘ₧ poΦφtaΦi (localhost). Zadßvß se jmΘno a heslo, p°id∞lenΘ sprßvcem, vybφrß se databßze (noviny).
Nßsleduje zßpis SQL p°φkazu. V n∞m se °φkß, ₧e se majφ vybrat vÜechna pole (to je ta hv∞zdiΦka) z tabulky clanky a se°adit podle data (order by datum). Zφskanß data se naΦtou do prom∞nnΘ $vysledek.
<h1>V²pis Φlßnk∙</h1>
<?
$spojeni = mysql_connect(localhost,"jmeno","heslo" );
mysql_select_db(noviny, $spojeni);
$vysledek = mysql_query(
"select * from clanky
order by datum",
$spojeni);
/* Konec p°φmΘ prßce s databßzφ. */
while ($zaznam = mysql_fetch_array($vysledek) ):
echo "<p><a href='vypisclanku.php?id=";
echo $zaznam["id"];
echo "'>";
echo $zaznam["titulek"];
echo "<br> ";
echo $zaznam["uvod"];
echo "<br>";
echo "Autor: "
echo $zaznam["autor"];
echo "</p>";
endwhile;
?>
Podφvejte se na nefunkΦnφ simulaci.
Druhß Φßst p°φkladu pouze tahß zßznamy z prom∞nnΘ $vysledek, d∞lß z nφ pole $zaznam, v²stup obaluje HTML tagy <br>, <a> a <p>. Pokud nerozumφte tΘto Φßsti, pus¥te ji z hlavy, staΦφ, kdy₧ ji budete m∞nit podle pot°eby. JedinΘ, co je tam d∙le₧itΘ, jsou jmΘna polφ, odpovφdajφcφ zßhlavφ tabulky v databßzi.
Hlavnφ v∞c je ten SQL dotaz. Jeho modifikacφ lze nap°φklad:
Jist∞ jste si vÜimli, ₧e SQL je takovß angliΦtina. P°φruΦky o SQL se dajφ najφt na webu. Pomocφ SQL se dajφ i tvo°it databßze a nastavovat prßva, ale to se u₧ v∞tÜinou ned∞lß prost°ednictvφm PHP.
Jazyk PHP obsahuje funkci mail(). Skript, kter² tuto funkci obsahuje, d∞lß dv∞ v∞ci:
<h1>Odesφlßnφ zprßvy</h1>
<?
mail("tiangcemin@china.gov",
"Svobodu Tibetu", "Chinese go home!");
echo "<p>Zprßva byla odeslßna</p>"
?>
Tento skript by na adresu pana Tiang Ce Mina m∞l odeslat zprßvu s p°edm∞tem Svobodu Tibetu, v textu mailu pak bude anglickß v²zva pro odchod. (Parametry se Φast∞ji p°edßvajφ pomocφ prom∞nn²ch.)
Sprßvn∞ by m∞l p°φklad vypadat jinak. Ne v₧dy se toti₧ mail poda°φ
opravdu odeslat. V praxi se funkce mail obaluje p°φkazem if() a v²stupem je
hlßÜenφ o ·sp∞chu, nebo ne·sp∞chu. Zkrßcen∞:
if( mail(parametry))
echo "·sp∞ch"
else echo "ne·sp∞ch";
╚φm m∙₧e b²t zp∙sobeno ne·sp∞ÜnΘ odesφlßnφ?
V∞tÜin∞ velk²ch internetov²ch aplikacφ staΦφ ke Üt∞stφ formulß°e, databßze a poÜta. Nap°φklad internetovΘ noviny:
A tak dßle, mo₧nosti jsou tΘm∞° neomezenΘ. Podobn∞ to chodφ v internetov²ch katalozφch a obchodech.
Bez nadsßzky se dß °φci, ₧e ₧e PHP umφ, na co si vzpomenete. (Leda za vßs nikdy nebude myslet.) Musφm jeÜt∞ zmφnit
Pokud byste se cht∞li psanφ PHP v∞novat vß₧n∞, po°i∩te si knihu PHP od Ji°φho Koska. Je skv∞lß, je v nφ skoro vÜechno a funguje to.
VÜechny v²hody PHP, kterΘ jsem popsal na tΘto strßnce, by se daly p°iΦφst i jazyku ASP - Active Server Pages od Microsoftu. Umφ skoro totΘ₧ co PHP, ale mß horÜφ p°enositelnost mezi platformami (zjednoduÜen∞ °eΦeno funguje pouze na Win-serverech, kter²ch je menÜina).
P°edchozφ: Jak zaΦφt s PHP, zejmΘna instalace
Vizte tΘ₧: Programovßnφ strßnek
Obsah
Hledßnφ
Zßkladnφ kurs
Editory
HTML tipy
Provoz webu
CSS styly
Jak psßt web:
http://dusan.pc-slany.cz/internet/
PφÜe Yuh∙: autorova strßnka, mail: dusan@pc-slany.cz
Poslednφ aktualizace 15.12.2001