Anglická verze
logolink

< Zpět na seznam lekcí

Úvod do PHP

PHPObsah lekce:

  • Dynamický web
  • Princip PHP
  • WampServer

Dynamický web

V předcozích lekcích věnovaných tvorbě internetových stránek v jazyku HTML a CSS jsme ukázali, jak se vytváří internetová stránka. Viděli jsme, že vytvoříme jednoduchý textový soubor (zpravidla s příponou .htm nebo .html), případně soubor typu .css pro definici vzhledu stránky. Pokud takový html soubor otevřeme v internetovém prohlížeči, tak ten jej řádek po řádku přečte a zobrazí. Toto zobrazení je plně statické - vidíme přesně to, co je v souboru napsáno. Žádná informace se na stránce nemůže s časem či jinými okolnostmi měnit. Jedná se tedy o internetové stránky, které nazýváme statické (pominuli jsme zde samozřejmě technologie jako Javascript a dynamické efekty CSS).

V dnešní době je Internet plný www stránek, jež zobrazují informace, které si člověk vyžádá nebo zadá do nějakého formuláře a následně dojde k jejich zpracování. Uvažujme následující příklady:

  • Internetová emailová služba - ta se jistě skládá z dynamicky generovaných stránek, protože každý uživatel se tam přihlásí svým přihlašovacím jménem a heslem, které se musí ověřit a po úspěšném přihlášení vidí své emaily se kterými může manipulovat jak potřebuje. Představme si freemailový server, kde má schránku 5 000 000 uživatelů (takový počet měl například www.seznam.cz v roce 2006). Jak bychom mohli ručně vyrábět statické stránky, kde by každá obsahovala právě všechny emaily některého z uživatelů, různě tříděné s možností je mazat... Tato funkcionalita již se statickou ručně psanou stránkou nemůže existovat. Musí existovat nějaký program (algoritmus), který dokáže vyhodnocovat akce uživatele a vyvářet (zobrazovat) stránku, kterou by uživatel měl vidět v důsledku provedených akcí.
  • Elektronický obchod - registrační formulář například do bezplatné emailové služby (www.seznam.cz, www.centrum.cz apod.) internetového obchodu (www.eproton.cz). Taková internetová stránka je schopna přečíst zadané údaje od uživatele, zkontrolovat je a buď je zobrazit znovu a žádat o jejich korekci nebo zadaná data někam uložit a poslat uživateli potvrzovací email. Už se tedy nejedná o obyčejný textový soubor, který je stále stejný, ale dokáže se měnit a reagovat na akce uživatele. Nicméně stále se v každé fázi jedná defacto o zobrazenou internetovou stránku (nějaký HTML kód).
  • Internetová kalkulačka (http://web2.0calc.com/).
  • Vyhledávače typu Google nebo www.seznam.cz.

Existuje několik technologií, kterými lze získat dynamické www stránky. Jedná se však zejména o následující:

Připomeňme základní technologie slouží pro World Wide Web.

  • Jazyk HTML, který slouží k zápisu WWW stránek (http://cs.wikipedia.org/wiki/HyperText_Markup_Language).
  • Přenosový protokol HTTP (HyperText Transfer Protocol), který zajišťuje přenos HTML stránek z WWW serveru (tj. počítače, kde jsou umístěny WWW stránky a který je umí poslat uživateli) do prohlížeče (http://cs.wikipedia.org/wiki/HTTP).
  • URL (Uniform Resource Locator) - technologie, která je nezbytná pro implementaci služby WWW. Každý objekt na webu má svou jedinečnou URL adresu, která slouží k vytváření odkazů na daný objekt (http://cs.wikipedia.org/wiki/URL).

Z dnešního pohledu spojení těchto tří technologií mnoho neumožňuje. Lze pouze prohlížet elektronické dokumenty v jazyce HTML, které jsou provázány systémem odkazů (hypertext). Abychom měli web, který je interaktivní a měli jsme možnost generovat HTML stránky proměnlivé v čase, pak si stačí uvědomit, že HTML stránka je soubor uložený na disku WWW serveru a má své URL. Nic tedy nebrání tomu, aby URL ukazovalo na soubor, který je spustitelný. Takto vzniklo rozhraní CGI (Common Gateway Interface) a na webu se začaly objevovat první formuláře (http://cs.wikipedia.org/wiki/Common_Gateway_Interface).

Uživatel tak zadá do vstupního pole nějaké údaje a ty se pak odešlou serveru, který zavolá (spustí) CGI-skript (program napsaný v nějakém programovacím jazyce). Tento skript požadavek (data z formuláře) zpracuje a jeho výsledkem je pak HTML stránka, která se odešle uživateli (zobrazí se v prohlížeči). Pro psaní CGI skriptů se používají programovací jazyky PERL, C++, JAVA apod.

V počátcích byly tyto technologie z důvodu pomalých přenosů doplněny technologiemi JAVA resp. JavaScript, které provádí program na straně (počítači) klienta a nepředstavují tak zátěž pro server datové přenosy. Použití JavaScriptu komplikuje fakt, že není jednotně implementován v prohlížečích a vznikají tak problémy při psaní kódu, který funguje napříč všemi prohlížeči. Java je poměrně náročná na výkon počítače, ale její obrovskou výhodou je fakt, že je nezávislá na platformě (je lhostejno jaký operační systém na daném počítači běží).

Princip PHP

PHP pracuje na principu, který jsme výše nastínili. PHP je skriptovací programovací jazyk, určený především pro programování dynamických internetových stránek. PHP skripty jsou většinou prováděny na straně serveru, k uživateli je přenášen až výsledek jejich činnosti. Uživatel zažádá o stránku (předá požadavek serveru), server jej zpracuje (nechá proběhnout PHP skript, který poskytne nějaký výsledek - nejčastěji HTML kód požadované stránky) a ten se pošle uživateli. Nejedná se tedy o statické zobrazení textového souboru, ale o zobrazení souboru, který vznikl dynamicky jako výsledek běhu programu (PHP skriptu).

Uveďme si příklad jednoduchého skriptu test.php:

Skript test.php
 <?php
  print("Ahoj, já jsem text vypsaný programem v jazyku PHP!");
 ?>

Pokud předchozí skript spustíme (umístíme na www server a zažádáme o něj), pak výsledkem bude stránka obsahující pouze řetězec "Ahoj, já jsem text vypsaný programem v jazyku PHP!". Všimněte si podobnosti s jazykem Pascal a příkazem writeln('Ahoj, já jsem text vypsaný programem v jazyku PHP!');. Značka <?php znamená začátek php kódu (pokyn pro server, že od tohoto místa má chápat text jako program v jazyce PHP a zpracovat ho pomocí PHP (značka ?> naopak říká, že zda PHP kód končí). Tento jednoduchý skript obsahuje pouze příkaz print, který má jako svůj parametr řetězec znaků, které prostě vypíše na výstup (např. do prohlížeče).

Cvičení

Nalezněte na Internetu nějaký webový server, který byste si mohli do počítače nainstalovat, abyste mohli používat PHP.

WampServer

Jeden z takových programů může být právě WampServer, který na počítači vytvoří virtuální server, který umožní spouštět PHP skripty a testovat vaše webové aplikace. WampServer lze zdarma stáhnout ve spodní části této stránky (lze si vybrat 32-bitovou nebo 64-bitovou verzi). Při instalaci není třeba nic měnit, program se defaultně nastaví tak, aby pracovní složka byla umístěna do adresáře C:\Wamp\. V tomto adresáři se bude nacházet podadresář www, do kterého budeme nahrávat všechny PHP soubory, který budeme chtít spustit. Je vhodné si vytvářet své podadresáře, abychom se v souborech vyznali.

Pokud spustíme WampServer, v tray nabídce se nám objeví ikonka, která bude prvně červená, poté oranžová a nakonec zelená, pokud vše dobře dopadne. V případě, že se tak nestane, mohlo dojít ke dvěma chybám. Pokud budete používat WampServer, tak musíte ukončit Skype, jelikož oba programy využívají stejné porty. Druhým konfliktním programem je služba IIS (Internet Information Service), která je automatickou součástí všech Windows verze Professional a vyšší - zde je možnost službu odinstalovat, deaktivovat, nebo otevřít konfigurační soubor C:\Wamp\bin\apache\Apache2.2.17\conf\httpd.conf a přepsat port za příkazem Listen na 8080 pokud potřebujeme používat obě služby.

Localhost u WampServeru

Tuto obrazovku uvidíme, pokud si otevřeme prohlížeč a zadáme adresu localhost (v případě, že jsme měnili port, tak localhost:8080). Ve spodní části vidíme nadpis Your Projects, zde můžeme procházet naše podadresáře ze složky www a spouštět PHP soubory jako na serveru.

WampServer také umožňuje použít interní databázi, kterou lze spravovat pomocí položky phpmyadmin ve spodní části.

Další čtení

Odkazy

Otázky

  1. Jaký je rozdíl mezi statickou a dynamickou stránkou? Jaké jsou výhody?
  2. Co si představit pod pojmem PHP?
  3. Jak lze PHP vložit do stránky?
  4. Jaké další technologie lze použít pro tvorbu dynamického webu?
  5. Lze PHP spustit na jakémkoli počítači?
webdesign, xhtml, css, php - Mgr. Michal Mikláš