1.35k likes | 1.51k Views
TVORBA WEBOVÝCH STRÁNEK. Výukový modul TWS_04 Ing. Pavel Chmiel, Ph.D. UNIV 2 - KRAJE. Osnova výukového modulu TWS_04. Jazyk PHP – význam, syntaxe, WAMP server, spouštění skriptů Příkaz ECHO Proměnné a konstanty v PHP, matematické operace Příkazy pro větvení a tvorbu cyklů
E N D
TVORBA WEBOVÝCH STRÁNEK Výukový modul TWS_04 Ing. Pavel Chmiel, Ph.D. UNIV 2 - KRAJE
Osnova výukového modulu TWS_04 • Jazyk PHP – význam, syntaxe, WAMP server, spouštění skriptů • Příkaz ECHO • Proměnné a konstanty v PHP, matematické operace • Příkazy pro větvení a tvorbu cyklů • Příkazy pro vkládání obsahu souborů (include, require) • Funkce v PHP (uživatelské, předdefinované) • Databáze – základní pojmy, výběr databázového systému • Databázový systém MySQL, správa databáze, jazyk SQL • PHP funkce pro práci s databázovým systémem MySQL
Jazyk PHP • PHP je skriptovací jazyk vykonávaný na straně webového serveru. PHP skripty se vkládají přímo do kódu webové stránky (uzavřen ve speciálním párovém tagu). • Na straně webového serveru se nejprve vykonají (interpretují) všechny PHP příkazy a funkce, poté se prohlížeči pošle upravená webová stránka obsahující pouze HTML/CSS kód.
Jazyk PHP Server hostující dynamické webové stránky musí obsahovat: • Aplikaci webového serveru (např. Apache) • PHP engine - interpretr PHP skriptů • Databázový systém (např. MySQL) Při vývoji (tvorbě) webových stránek je vhodné mít tyto aplikace nainstalovány na lokálním počítači (localhost). Výhoda: - rychlost při testování,- není nutné připojení k internetu,- možnost upravit si konfiguraci přesně dle vlastních požadavků.
WAMP server WAMP server je balík nakonfigurovaných aplikací pro vývoj dynamických webových stránek, obsahující: • webový server APACHE • interpretr jazyka PHP • databázový systém MySQL • webový nástroj pro správu databáze phpMyAdmin WAMP server je zdarma ke stažení: www.wampserver.com
Základní vlastnosti jazyka PHP • zpracování údajů z formulářů • modifikace obsahu, formátování a struktury webové stránky • obsahuje funkce pro práci s databázemi (např. MySQL) • obsahuje velké množství dalších odladěných funkcí, např.:- práce s textovými řetězci- práce s datem a časem- práce s elektronickou poštou a pro FTP přístup na server- matematické funkce- práce s obrázky- práce se soubory a složkami, atd.- možnost vytvářet vlastní funkce a procedury • skripty prováděny na serveru – výsledná stránka neobsahuje PHP kód
Pravidla použití jazyka PHP • soubory webové stránky obsahující PHP skripty musí mít příponu*.php(např. index.php) • PHP skripty se vkládají mezi speciální značky:<?phpecho "ahoj světe!"; ?> • PHP příkazy, funkce, deklarace proměnných a konstant jsou vždy ukončeny středníkem • v názvu proměnné, konstanty a vlastní funkce nepoužívat diakritiku
Zjištění konfigurace PHP, spuštění skriptu Funkce pro zjištění konfigurace PHP enginu:<?php phpinfo(); ?> kód (PHP skript) vložit do souboru webové stránky, uložit s příponou php (např. test.php) do pracovního adresáře webového serveru, pro spuštění na lokálním webovém serveru s PHP zapsat v prohlížeči adresu: localhost/test.php pro spuštění na vzdáleném webovém serveru s PHP zapsatv prohlížeči adresu: www.mojestranky.cz/test.php
Příkaz ECHO Příkaz ECHO slouží k: • výpisu statických textových řetězců • dynamickému vkládání HTML/CSS kódu • výpisu obsahu PHP proměnných • výpisu obsahu PHP konstant • kombinace bodů 1. až 4.
Příkaz ECHO 1. Výpis statických textových řetězců <?phpecho"Ahoj světe!"; ?> Celá konstrukce se zapíše přímo do těla webové stránky, tedy mezi párové značky <body> </body> UPOZORNĚNÍ: Spustit na lokálním webovém serveru (localhost, popř. přímo adresa 127.0.0.1) !!!
Příkaz ECHO 2. Dynamické vkládání HTML/CSS kódu <?php echo"<span class='cervene'>Ahoj</span> světe!"; ?> 1. použít apostrofy'2. použít sekvenci \" UPOZORNĚNÍ: HTML / CSS kód uvnitř příkazu ECHO bude interpretován, nikoliv zobrazen jako statický text !!!
Psaní speciálních znaků Některé znaky mají v PHP speciální význam. Pro výpis znaku v prohlížeči je nutné použít zpětné lomítko před tímto znakem. Takto zapsaná sekvence (zpětné lomítko + znak) je uvnitř příkazu ECHO chápána jako znak (", ', $, \)
Psaní speciálních znaků <?php echo"Vyučující řekl: \"Děti, pište si!\""; echo"<br />"; echo"Cena je <span class=\"cervene\">1.000\$</span>"; ?>
Komentáře v PHP • Slouží k popisu jednotlivých části PHP kódu pro větší přehlednost, snadnou úpravu a pochopení kódu i za delší dobu provozu webu. • PHP engine při interpretaci PHP skriptů komentáře ignoruje. <?php /* Víceřádkový komentář. Při vývoji a testování webu slouží také k odstavení nepoužívané části PHP kódu. */ echo"Ahoj světe!";//Jednořádkový komentář?>
Proměnné v PHP • Proměnné slouží k uchování hodnot, které lze během provádění skriptu měnit. • Proměnné začínají znakem $ (dolar), např. $soucet • Pro název proměnné platí tato pravidla:- nepoužívat diakritiku,- PHP rozlišuje velká a malá písmena ($prom ≠ $PROM),- název nesmí obsahovat jiné symboly než písmena, číslice, podtržítko,- název vždy začíná písmenem nebo podtržítkem. • Proměnnou lze deklarovat na kterémkoliv místě v PHP skriptu • Není potřeba uvádět datový typ hodnot, které bude obsahovat.
Přiřazení hodnoty do proměnné Operátorem pro přiřazení hodnoty do proměnné je = (znak „rovná se“) Proměnné, umožňující přiřazení jedné hodnoty: $promenna_cislo = 2; $promenna_cislo = 1.76; $promenna_cislo = 1e-3; (ekvivalent k číslu 0.001) $promenna_text = "Nějaký textový řetězec"; $promenna_text = "2"; $promenna_log = true; (logické hodnoty: true - pravda, false - nepravda)
Vypsání hodnoty proměnné $vek = 35; // deklarace proměnné echo $vek; // vypíše: 35 echo "Je mi $veklet."; // vypíše: Je mi 35 let. echo "Je mi <strong>$vek</strong> let."; // vypíše: Je mi 35 let. echo "Proměnná \$vek =$vek"; // vypíše: Proměnná $vek = 35
Výpis hodnoty proměnné Pro výpis obsahu proměnných společně s textem je někdy výhodné použít spojení pomocí symbolu tečky nebo čárky. Nezbytné především u proměnných typu SESSION, COOKIE, POST, GET, SERVER, REQUEST, ENV a tzv. asociativních polí. $vek = 35; echo "Je Vám<span class='cervene'>".$vek."</span>let."; echo "Vaše IP adresa je: ",$_SERVER["REMOTE_ADDR"]; Výsledný text v prohlížeči:Je Vám 35 let. Vaše IP adresa je: 82.209.58.100
Proměnná typu „pole“ • Umožňuje uchovávat více hodnot (prvků pole), které spolu souvisí. • Každá hodnota je dostupná pomocí indexu, zapsaného v hranaté závorce. • Pokud není uvedeno jinak, pole se indexuje od nuly. • Příklad jednoduché proměnné typu pole:$jmena[0]="Pankrác";$jmena[1]="Servác";$jmena[2]="Bonifác";echo$jmena[1];//vypíšeServác
Proměnná typu „pole“ • Jednotlivé hodnoty uložené v poli mohou být libovolného typu: • Ukázkový příklad:$pole[0]=3.14;// reálné číslo$pole[1]=77;// celé číslo$pole[2]="Toto je nějaký text…";// textový řetězec
Proměnná typu „pole“ • Inicializaci pole lze provést také zjednodušeně pomocí funkce array() • Ukázkový příklad:$RajskySalat=array('rajče', 'cibule', 'sůl', 'cukr', 'pepř');echo$RajskySalat[2];// Vypíše:sůl
Proměnná typu „pole“ • Pokud u pole použijeme prázdný index, číslování indexů je nastaveno automaticky od nuly. • Ukázkový příklad:$pole[]=11;$pole[]=22;$pole[]=33;echo$pole[0];//vypíše11echo$pole[1];//vypíše22echo$pole[2];//vypíše33
Proměnná typu „pole“ • Jako index lze použít textový řetězec (tzv. asociativní pole). • Ukázkový příklad:$kosik["kod_zbozi"]=76889;$kosik["nazev"]="Nikon D700";$kosik["cena"]=54990;echo$kosik["nazev"];//vypíšeNikon D700
Proměnná typu „pole“ • Počet prvků v poli lze zjistit pomocí funkce count() • Ukázkový příklad:$RajskySalat=array('rajče', 'cibule', 'sůl', 'cukr', 'pepř');$pocet = count($RajskySalat); // proměnná $pocet má hodnotu 5
Proměnná typu „pole“ • Pole může být i vícerozměrné přidáním dalších indexů. • Ukázkový příklad dvourozměrného pole $kaledar:$kalendar["leden"][1]="Nový rok";$kalendar["leden"][2]="Vyspávám opičku…";$kalendar["leden"][3]="3. leden - Hurá do práce!";echo$kalendar["leden"][2];//vypíšeVyspávám opičku…
Konstanty v PHP • Konstanta slouží k pojmenování hodnoty, na kterou se budeme při provádění skriptu odkazovat. Hodnotu konstanty nelze za běhu měnit.define ("jmeno_konstanty","hodnota");define ("pi","3.14");define ("max","100");define ("maxN","100", true); Třetí parametr je volitelný – “true” znamená že nezáleží na velikosti písmen v názvu konstanty (maxN, maxn, MAXN, atd. jsou shodné).
Konstanty v PHP • Použití konstanty ve skriptu:define ("max","100");echo "Maximální hodnota je ".max;Výsledný text v prohlížeči:Maximální hodnota je 100 • Využití konstant: • Číselné hodnoty označíme výstižnějším názvem, který lépe vystihujejejich význam (např. konstanta pi = 3.14, abs_nula = -273.16), • Změna konstantní hodnoty v rozsáhlých stránkách na jednom místě.
Metody odesílání dat z formuláře • Metody GETa POST určují způsob odeslání dat z formuláře obslužnému skriptu. • Uživatelem vložené, popřípadě předdefinované (atribut VALUE) hodnoty jednotlivých formulářových prvků jsou v obslužném skriptu přístupné prostřednictvím globální proměnné typu pole: $_GET["nazev_prvku"] $_POST["nazev_prvku"] Jméno formulářového prvku (atribut NAME)
Metoda GET • Výchozí metoda všech formulářů. Všechna data formuláře jsou zaslána obslužnému skriptu prostřednictvím URL adresy. • Metodu lze využít při navigaci v rámci webové stránky a při předávání parametrů stránky (např. ID článku, vyhledávaný řetězec, apod.) • Metoda GET je vhodná pouze pro zasílání textových řetězců, nelze použít pro odesílání souborů nebo velkého objemu hodnot !!! • Hodnoty se přenášejí ve tvaru nazev_promenne = hodnota Příklad: http://www.vase-stranky.cz/obsluha.php?prom1=hodn1&prom2=hodn2
Metoda GET Pozn.: HEX = Hexadecimální (šestnáctková) číselná soustava. Příklad: znak „č“ bude v URL přenášen ve tvaru %E8 (E816 = 23210)
Metoda GET Konstrukce formuláře: formular.htm <form action="vypis.php" method="GET"> Jméno: <input name="jmeno" type="text" /><br /> Příjmení: <input name="prijmeni" type="text" /><br /> <input type="submit" value="Odeslat" /> </form>
Metoda GET localhost/vypis.php?jmeno=Pavel&prijmeni=Chmiel PHP automaticky dekóduje data z URL adresy a uloží každou dvojicipromenna=hodnota jako proměnnou s odpovídajícím názvem do pole $_GET["jmeno_formularoveho_prvku"] Obslužný skript: vypis.php <?php echo "Vaše jméno: ".$_GET["jmeno"]."<br>"; echo "Vaše příjmení: ".$_GET["prijmeni"]; ?>
formular.htm vypis.php
Metoda POST • Metoda je určena pro odesílání většího objemu dat (velké množství textových hodnot, datové soubory různého typu, apod.) v přímo v těle HTTP požadavku webovému serveru. • Přenášená data nejsou součástí URL adresy, vhodné pro přenos citlivých údajů (např. login, heslo, bezpečnostní kód, apod.). • Metoda POST vždy odesílá nový HTTP požadavek webovému serveru. Nehledá se tedy stránka uložená v mezipaměti (cache) prohlížeče na lokálním disku, ale vždy se načte nová stránka z webového serveru.
Metoda POST Konstrukce formuláře: formular.htm <form action="vypis.php" method="POST"> Jméno: <input name="jmeno" type="text" /><br /> Příjmení: <input name="prijmeni" type="text" /><br /> <input type="submit" value="Odeslat" /> </form>
Metoda GET localhost/vypis.php PHP dekóduje data z HTTP požadavku webovému serveru a uloží je jako proměnnou s odpovídajícím názvem do pole:$_POST["jmeno_formularoveho_prvku"] Obslužný skript: vypis.php <?php echo "Vaše jméno: ".$_POST["jmeno"]."<br />"; echo "Vaše příjmení: ".$_POST["prijmeni"]; ?>
formular.htm vypis.php
Metoda POST – přenos souborů Odesílají-li se z formuláře metodou POST kromě textu také soubory (např. obrázky), je potřeba v definici formuláře nastavit atributENCTYPE: enctype= "multipart/form-data" <formaction="skript.php"method="POST"enctype="multipart/form-data"> <input type="file"name="soubor" /> … další formulářové prvky …. </form>
SESSION proměnné • Patří mezi tzv. superglobální proměnné – hodnoty uložené v těchto proměnných jsou přístupné na všech webových stránkách (ve všech souborech obsahujících PHP skripty) určité webové prezentace. • Před použitím SESSION proměnné na určité webové stránce je nutné zavolat funkci (pouze jednou na stránce): session_start();(nespoléhat se na nastavení v souboru php.ini: session.auto_start =1) • Webový prohlížeč uživatele, který si stránku načte, získá jedinečný ID kód (session ID). Zároveň se vytvoří textový soubor (tzv. session, neboli relace) na straně webového serveru s tímto ID, ve kterém jsou ukládány veškeré session proměnné a jejich hodnoty tohoto uživatele.
SESSION proměnné Příklad názvu souboru: sess_l20dpvbrg7pfu01lr47qf1nue3 Příklad obsahu souboru:id|i:1;cas|i:1096972373;stranek|i:8 Session (relace) je platná: • Dokud ji nezrušíme pomocí PHP funkce session_destroy(); • Dokud neukončíme webový prohlížeč
Vytvoření SESSION proměnné <?php session_start(); $_SESSION["nazev_promenne"] = hodnota; ?> • Hodnota proměnné bude přístupná na všech webových stránkách (resp. PHP skriptech) webové prezentace. • Umožňuje tedy jednoduché sdílení hodnot mezi jednotlivými částmi webové prezentace.
Použití SESSION proměnné <?php session_start(); $_SESSION["cislo"] = 35; ?> soubor1.php <?php session_start(); echo "Číselná hodnota: ".$_SESSION["cislo"]."<br />"; ?> soubor2.php
PHP funkce pro SESSION proměnné • session_start()- vytvoří session (ID) • session_id()- zjistí aktuální session ID • session_is_registered("nazev_promenne")- vrátí hodnotu TRUE, pokud je session proměnná již zaregistrovaná a FALSE v případě, že ještě není zaregistrována • unset($_SESSION["nazev_promenne"])- Zrušení hodnoty proměnné nazev_promenne v session • session_destroy()- odstraní aktuální session (např. při odhlašování uživatele)
Proměnné webového serveru a PHP Jedná se o proměnné vytvářené webovým serverem a PHP enginem: $_SERVER["nazev_promenne"] Proměnné a jejich obsah (hodnoty) lze ve skriptech běžně používat. Přehled proměnných a jejich hodnot získáme pomocí funkce phpinfo(); (v části „PHP Variables“) Ukázka systémových proměnných a jejich obsahu:
Základní matematické operátory • Matematické operace lze provádět s čísly, konstantami a proměnnými, jejichž obsahem je číslo, popřípadě textový řetězec, který lze na číslo převést. • Lze používat také PHP funkce, jejichž výstupem je číselná hodnota. • Pro změnu pořadí matematických operací lze využít kulaté závorky ( ).
Základní matematické operátory <?php $a = 1; $b= 3;$c= 5;$d= "7"; $e = "ahoj"; echo $a + $b;// vypíše: 4 echo ($d +$a)* $c;// vypíše: 40, proměnná $d se přetypuje na číslo 7 echo $e+$a;// vypíše: 1, proměnnou $e nelze přetypovat na číslo! echo $d/5;// vypíše: 1.4 echo $d%5; // vypíše: 2 echo $a -($d*($b - 2));// vypíše: -6 echo round($c+sqrt($b));// vypíše: 7 ?> PHP funkce: odmocnina čísla zaokrouhlení čísla
Příkazy pro větvení programu Umožňují stanovit bloky kódu, které budou provedeny při splnění či nesplnění stanovených podmínek. Základní konstrukce podmínkového příkazu:IF (jestliže) – ELSE (jinak)Provede se příkaz nebo blok kódu, je-li splněna podmínka. $a = 1;if($a==0)echo"proměnná \$a je rovna hodnotě0"; // Tento příkaz se neprovedeelseecho"proměnná \$a není rovna hodnotě 0";// Tento příkaz se provede
Konstrukce podmínky příkazu IF Podmínka se uvádí v kulaté závorce za příkazem IF. Za příkazem IF ani ELSE se nepíše středník! if(podmínka) Vyhodnocení podmínky musí vracet logickou hodnotu: TRUE – „pravda“, neboli podmínka je splněnaFALSE – „nepravda“, neboli podmínka není splněna • Jedná se především o porovnávání (komparaci) dvou hodnot. • Je-li podmínka splněna (TRUE), vykoná se blok příkazů části IF, není-li podmínka splněna (FALSE), vykoná se blok příkazů části ELSE.
Konstrukce podmínky příkazu IF A, B – mohou představovat proměnné, konstanty, statické hodnoty (číselné, textové, logické), popř. funkce, vracející tyto hodnoty.