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