Mo₧nosti PHP

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: 

Snadn² zßpis

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.

P°φklad

<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.

Zpracovßnφ formulß°∙

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Θ. 

P°φklad

Budu mφt dva soubory

  1. formular1.html s jednφm vstupnφm polem (·pln∞ obyΦejnΘ HTML)
  2. zpracovani_formulare1.php

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φ:

  1. Formulß° mß nastavenou action na jmΘno php souboru, kter² to bude zpracovßvat. 
  2. Ten PHP soubor obsahuje jak obyΦejnΘ HTML (<p>V²born∞...), tak PHP k≤d odd∞len² znaky <? a ?>. VÜe, co je mezi nimi, je PHP program, kter² server vyhodnocuje (to je to echo $jidlo).
  3. Formulß° obsahoval vstupnφ pole (<input>) se jmΘnem name="jidlo". PHP skript p°ebφrajφcφ formulß° si automaticky zalo₧φ prom∞nnou $jidlo, obecn∞ $jmΘno_pole. (Ten dolar $ je pro PHP oznaΦenφ, ₧e jde o prom∞nnou.) Hodnotou prom∞nnΘ $jmeno je to, co zadal u₧ivatel do formulß°e (p°ed odeslßnφm).

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. 

Vklßdßnφ soubor∙

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.  

Spoluprßce s databßzemi

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Θ.

SchΘma spoluprßce PHP s databßzφ

P°φklad nßvrhu databßze

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.

Mo₧nosti SQL  

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. 

Odesφlßnφ mail∙

Jazyk PHP obsahuje funkci mail(). Skript, kter² tuto funkci obsahuje, d∞lß dv∞ v∞ci: 

  1. odeÜle mail podle zadan²ch parametr∙
  2. vygeneruje HTML v²stup jako jin² normßlnφ php skript, v∞tÜinou je tam napsßno, ₧e zprßva je odeslßna (nenφ podmφnkou). 

P°φklad

<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.) 

Zßludnosti

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φ? 

  1. funkce mail() je zakßzanß (zejmΘna na free serverech)
  2. je Üpatn∞ nastaven² smtp server (v php.ini na win-serverech)
  3. nebo prost∞ blbne mail dΘmon nebo je p°etφ₧enß sφ¥

Kombinace formulß°∙, databßze a poÜty

V∞tÜin∞ velk²ch internetov²ch aplikacφ staΦφ ke Üt∞stφ formulß°e, databßze a poÜta. Nap°φklad internetovΘ noviny: 

  1. ╚lßnky se vklßdajφ p°es formulß°e do databßze. V∞tÜinou majφ auto°i dßna svß hesla. PHP se jednoduÜe podφvß, zda heslo odpovφdß, pak nechß autora Φlßnek vlo₧it. 
  2. Hlavnφ strßnka generuje v²stupy z databßze. Do nφ se dajφ (do dalÜφch tabulek) vklßdat tΘ₧ komentß°e (op∞t pomocφ formulß°∙). 
  3. Prohledßvßnφ, t°φd∞nφ a aktualizaci Φlßnk∙ lze d∞lat pomocφ jednoduch²ch SQL p°φkaz∙, zabudovan²ch do jednoduch²ch PHP skript∙, vÜechno m∙₧e b²t zaheslovßno.
  4. ╚tenß°i si mohou pomocφ formulß°e objednat zasφlßnφ novinek do poÜty. PHP odeÜle nap°ed potvrzovacφ mail s odkazem na php skript, kter² objednßvku potvrdφ. Mail se zapφÜe do databßze.
    Jednou za Φas se to spustφ odesφlßnφ novinek, kterΘ vygeneruje databßze a poÜle vÜem registrovan²m do mailu. 

A tak dßle, mo₧nosti jsou tΘm∞° neomezenΘ. Podobn∞ to chodφ v internetov²ch katalozφch a obchodech.

A dalÜφ...

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.

ASP -- varianta k PHP

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

PφÜe Yuh∙
dusan@pc-slany.cz
mail formulß°em
Jak psßt web O tvorb∞, ·dr₧b∞ a zlepÜovßnφ internetov²ch strßnek.

Zßklady HTML CSS FrontPage Hledßnφ

Obsah

Hlavnφ strßnka

Novinky

FAQ

Download

Zdroje

Hledßnφ


RozÜφ°enΘ

Zßkladnφ kurs

Jak ud∞lat strßnku

Zßklady HTML

Publikovßnφ

Zßsady psanφ

Editory

R∙znΘ prohlφ₧eΦe

Editory

FrontPage 2000

FP Editor 98

Word 97

FrontPage Express

HTML tipy

P°φprava obrßzk∙

Obrßzky

Pozadφ

Odkazy

Vychytßvky odkaz∙

Zßlo₧ky

Aktivnφ mail

Tabulky

┌prava tabulek

Novinky tabulek

Design tabulkami

Rßmy

Formßtovßnφ rßm∙

Rßmy nepou₧φvat

Iframe

Formulß°e

Formulß°e v HTML

DokonalΘ formulß°e

Zßpis barev

Definice

Formßtovacφ chyby

Jak ud∞lat levΘ menu

Vyt∞₧ovßnφ strßnek

Provoz webu

Rychlost strßnek

VzdßlenΘ slu₧by

VyhledßvaΦe

Katalogy

Sprßva soubor∙

Ikona strßnky

Obsah / forma

╚eÜtina

Chyby ΦeÜtiny

Tabulky k≤dovßnφ

Meta tagy

Nastavenφ serveru

Programovßnφ strßnek

ZaΦßtky PHP

Mo₧nosti PHP

Pou₧φvßnφ prohlφ₧eΦe

CSS styly

CSS styly

┌vod do CSS

Struktura textu

CSS prakticky

P╪EHLED VLASTNOST═ CSS

Slo₧it∞jÜφ deklarace

DΘlkovΘ jednotky

Pozicovßnφ

Sloupce pozicovßnφm

Okraje objekt∙

OdliÜenφ prohlφ₧eΦ∙

Omezenφ CSS

OdliÜn² tisk

DynamickΘ HTML

Filtry

P°φklady filtr∙

R∙znΘ barvy odkaz∙

Barva rolovacφ liÜty

 


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