115
Základy programování v Základy programování v PHP PHP RNDr. Pavel Vlach, Ph.D. RNDr. Pavel Vlach, Ph.D.

Základy programování v PHP

  • Upload
    shay

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

Základy programování v PHP. RNDr. Pavel Vlach, Ph.D. PHP – k čemu to je?. skriptovací jazyk pro tvorbu dynamického webu internetové obchody podnikové informační systémy (ať už intranetové nebo internetové) diskusní fóra redakční systémy firemní prezentace dynamické osobní stránky - PowerPoint PPT Presentation

Citation preview

Page 1: Základy programování v PHP

Základy programování v PHPZáklady programování v PHP

RNDr. Pavel Vlach, Ph.D.RNDr. Pavel Vlach, Ph.D.

Page 2: Základy programování v PHP

PHP – k čemu to je?PHP – k čemu to je?

• skriptovací jazyk pro tvorbu dynamického webu skriptovací jazyk pro tvorbu dynamického webu – internetové obchody internetové obchody – podnikové informační systémy (ať už intranetové nebo podnikové informační systémy (ať už intranetové nebo

internetové) internetové) – diskusní fóra diskusní fóra – redakční systémy redakční systémy – firemní prezentace firemní prezentace – dynamické osobní stránky dynamické osobní stránky – weboví poštovní či databázoví klienti weboví poštovní či databázoví klienti – vyhledávače a katalogy vyhledávače a katalogy – drobnosti typu počitadla, ankety a mnoho dalších drobnosti typu počitadla, ankety a mnoho dalších

Page 3: Základy programování v PHP

Jak to funguje?Jak to funguje?

• PHP kód se zapisuje v textovém tvaruPHP kód se zapisuje v textovém tvaru• PHP interpret (běžícím na webovém serveru) PHP interpret (běžícím na webovém serveru)

kód překládá a posílá do klienta (prohlížeče) kód překládá a posílá do klienta (prohlížeče) hotový html kódhotový html kód

• skripty (podobně jako .asp) narozdíl od skripty (podobně jako .asp) narozdíl od JavaScriptu provádí serverJavaScriptu provádí server

• nezatěžuje vlastní počítač – náročný na nezatěžuje vlastní počítač – náročný na komunikaci se serveremkomunikaci se serverem

• př. webový server nejprve spočítá kolik př. webový server nejprve spočítá kolik 300/30 a pak prohlížeči odešle jen číslo 10300/30 a pak prohlížeči odešle jen číslo 10

Page 4: Základy programování v PHP

Co se naučíme?Co se naučíme?

• syntaxi a základy jazyka PHPsyntaxi a základy jazyka PHP• používání proměnných a různých datových typůpoužívání proměnných a různých datových typů• větvení programů a cyklyvětvení programů a cykly• práce se souborypráce se soubory• zpracování formulářových datzpracování formulářových dat• spolupráce s MySQLspolupráce s MySQL• příkladypříklady

– diskuzní fórumdiskuzní fórum– základy redakčních systémůzáklady redakčních systémů– on-line přihlašovací formulářon-line přihlašovací formulář

Page 5: Základy programování v PHP

Co budeme potřebovat?Co budeme potřebovat?

• kompetence v oblasti tvorby HTML stránekkompetence v oblasti tvorby HTML stránek

• webový server (Apache s technologií PHP)webový server (Apache s technologií PHP)• textový procesor (PSPad, Pozn. blok)textový procesor (PSPad, Pozn. blok)

• hodně času a chutihodně času a chuti

Page 6: Základy programování v PHP

1. princip funkce PHP1. princip funkce PHP

a)a) historie PHP a htmlhistorie PHP a html

b)b) ještě jednou jak to fungujeještě jednou jak to funguje

b) jak se to spojí s htmlb) jak se to spojí s html

Page 7: Základy programování v PHP

Historie a skriptovací jazykyHistorie a skriptovací jazyky

• první stránky první stránky statickéstatické – nereagovaly, nebyly – nereagovaly, nebyly interaktivníinteraktivní

• dynamické stránky - reagují na tlačítka a dynamické stránky - reagují na tlačítka a myš, zpracovávají data zadávaná uživatelem, myš, zpracovávají data zadávaná uživatelem, zobrazované informace se mění apod.zobrazované informace se mění apod.

• dynamické stránky lze rozdělit do dvou dynamické stránky lze rozdělit do dvou skupin:skupin:– klientskéklientské– serverovéserverové

Page 8: Základy programování v PHP

klientské scriptovací jazykyklientské scriptovací jazyky

• Spolu s HTML stránkou je prohlížeči odeslán Spolu s HTML stránkou je prohlížeči odeslán i programový kód a ten je ve vhodnou chvíli i programový kód a ten je ve vhodnou chvíli na "cílovém" počítači spuštěnna "cílovém" počítači spuštěn

• při kliknutí na tlačítko, při najetí myší na při kliknutí na tlačítko, při najetí myší na odkaz, při otevření okna prohlížeče a odkaz, při otevření okna prohlížeče a podobněpodobně

• O spuštění klientského kódu se stará O spuštění klientského kódu se stará prohlížeč - a to může být nevýhoda - musí prohlížeč - a to může být nevýhoda - musí znát programovací jazykznát programovací jazyk

• JavaScriptJavaScript

Page 9: Základy programování v PHP

serverové scriptovací jazykyserverové scriptovací jazyky

• prohlížeč požaduje webovou stránku ze prohlížeč požaduje webovou stránku ze serveru - server tuto stránku nejprve sestaví serveru - server tuto stránku nejprve sestaví a pak odešlea pak odešle

• Servery sestavují pokaždé jinou stránku v Servery sestavují pokaždé jinou stránku v závislosti na tom, co přesně prohlížeč závislosti na tom, co přesně prohlížeč požaduje požaduje

• php, aspphp, asp

Page 10: Základy programování v PHP

Jak vypadá php script?Jak vypadá php script?

• obsahuje jednak kusy normálního HTML kódu, a obsahuje jednak kusy normálního HTML kódu, a jednak kusy programového kódu. Když webový jednak kusy programového kódu. Když webový server obdrží požadavek na zpracování takového server obdrží požadavek na zpracování takového skriptu, vezme: skriptu, vezme: – kusy HTML kódu tak, jak jsou kusy HTML kódu tak, jak jsou – části PHP programového kódu provede části PHP programového kódu provede – výsledek zkombinuje a odešle prohlížeči výsledek zkombinuje a odešle prohlížeči

• Server totiž výsledek posílá do prohlížeče jako Server totiž výsledek posílá do prohlížeče jako obyčejnou HTML stránkuobyčejnou HTML stránku

• zapsaný kód v editoru vypadá jinak než po zobrazení zapsaný kód v editoru vypadá jinak než po zobrazení „zdrojového kódu“ v prohlížeči„zdrojového kódu“ v prohlížeči

Page 11: Základy programování v PHP

ukázka zápisu prosté html ukázka zápisu prosté html stránkystránky

• prostý html zápis (bez validní struktury, ale v prostý html zápis (bez validní struktury, ale v prholížeči tento zápis „projde“)prholížeči tento zápis „projde“)

Page 12: Základy programování v PHP

ukázka zápisu se včleněným php ukázka zápisu se včleněným php kódemkódem

• zápis kódu v editoruzápis kódu v editoru• zobrazení prohlížečizobrazení prohlížeči• výpis zdrojového kódu v prohlížečivýpis zdrojového kódu v prohlížeči• všimněte si adresy v okně prohlížečevšimněte si adresy v okně prohlížeče

adresa

Page 13: Základy programování v PHP

Jak to, že se liší kód v editoru Jak to, že se liší kód v editoru a kód v prohlížeči?a kód v prohlížeči?

• Prohlížeč „neví“, co všechno se na serveru Prohlížeč „neví“, co všechno se na serveru dělo než mu byl výstup odeslándělo než mu byl výstup odeslán

• prohlížeč (a tedy i ten, kdo si chce přečíst prohlížeč (a tedy i ten, kdo si chce přečíst kód v pohlížeči) vidí jen samotný výsledekkód v pohlížeči) vidí jen samotný výsledek

• na serveru se mohla dít celá řada věcí:na serveru se mohla dít celá řada věcí:– matematické výpočtymatematické výpočty– přístupy k databázímpřístupy k databázím– formátováníformátování– operace s řetězci a další taškařice operace s řetězci a další taškařice

Page 14: Základy programování v PHP

závěrečné shrnutízávěrečné shrnutí

1.1. skript musí být "prohnán" serveremskript musí být "prohnán" serverem- otevřením v textovém editoru nebo si ho otevřením v textovém editoru nebo si ho

prohlédnete jako soubor na disku, neuvidíte prohlédnete jako soubor na disku, neuvidíte výsledekvýsledek, ale , ale zdrojový kódzdrojový kód skriptu skriptu

- plést se může zejména tehdy, když máte PHP plést se může zejména tehdy, když máte PHP skript na vlastním počítači - PHP soubor skript na vlastním počítači - PHP soubor proženete serverem tak, že se na něj zeptáte proženete serverem tak, že se na něj zeptáte prohlížeče pomocí adresy url. Například pomocí prohlížeče pomocí adresy url. Například pomocí http://localhost/skript.php http://localhost/skript.php

Page 15: Základy programování v PHP

závěrečné shrnutízávěrečné shrnutí

2. PHP skripty nejsou závislé na prohlížeči2. PHP skripty nejsou závislé na prohlížeči3. integrace PHP do html pomocí speciálních značek:3. integrace PHP do html pomocí speciálních značek:

- celý soubor může být jeden dlouhý PHP kód. - celý soubor může být jeden dlouhý PHP kód. - kód PHP je na jednom určitém místě - kód PHP je na jednom určitém místě - v souboru je více místo obsahující PHP kód - v souboru je více místo obsahující PHP kód - soubor se tváří jako php skript, ale ve skutečnosti je to - soubor se tváří jako php skript, ale ve skutečnosti je to normální HTML soubor a PHP kód v něm vůbec nenínormální HTML soubor a PHP kód v něm vůbec není

4. výsledkem PHP skriptu je normální HTML stránka – 4. výsledkem PHP skriptu je normální HTML stránka – nepouštějte se do práce v PHP, pokud alespoň nepouštějte se do práce v PHP, pokud alespoň zběžně neznáte HTMLzběžně neznáte HTML

5. k dispozici musí být webový server5. k dispozici musí být webový server

Page 16: Základy programování v PHP

doporučená literaturadoporučená literatura

• Jiří KosekJiří KosekPHPPHPtvorba interaktivních tvorba interaktivních internetových aplikacíinternetových aplikacíGrada Publishing 1999Grada Publishing 1999, , 492 stran492 stranISBN 80-7169-373-1ISBN 80-7169-373-1

• stará, ale dobrástará, ale dobrá• různé webové kurzyrůzné webové kurzy• www.php.netwww.php.net

Page 17: Základy programování v PHP

webový server a jeho instalacewebový server a jeho instalace

apacheapache

phpphp

mySQLmySQL

Page 18: Základy programování v PHP

jak na instalaci?jak na instalaci?

• instalace a přená konfigurace webového instalace a přená konfigurace webového serveru Apache a následně spuštění serveru Apache a následně spuštění technologií php a mySQL může být velmi technologií php a mySQL může být velmi obtížnáobtížná

• pro začátek (v rámci celého kurzu vystačíme) pro začátek (v rámci celého kurzu vystačíme) lze nainstalovat celý balíček výše zmíněných lze nainstalovat celý balíček výše zmíněných serverů a aplikacíserverů a aplikací

• odkazy na 3v1 instalace:odkazy na 3v1 instalace:www.kosek.czwww.kosek.czwww.linuxsoft.czwww.linuxsoft.cz

Page 19: Základy programování v PHP

Vertrigo serverVertrigo server

• stabilní, většinou bezproblémová stabilní, většinou bezproblémová instalaceinstalace

• nabízí Apache, PHP4 a mySQLnabízí Apache, PHP4 a mySQL• možnosti konfigurace v rozbalovací možnosti konfigurace v rozbalovací

lištěliště• první volba umožňuje restart a první volba umožňuje restart a

vypnutí serveruvypnutí serveru• v liště Tools je k dispozici v liště Tools je k dispozici

phpMyAdmin phpMyAdmin • Settings umožňují základní Settings umožňují základní

konfiguracikonfiguraci

Page 20: Základy programování v PHP

Vertrigo serverVertrigo server

Page 21: Základy programování v PHP

ÚkolÚkol

• na ploše je umístěn zástupce serveru na ploše je umístěn zástupce serveru VertrigoVertrigo

• spusťte jej a pozorujte změny na panelu spusťte jej a pozorujte změny na panelu nástrojůnástrojů

• spusťte konfigurační programspusťte konfigurační program

Page 22: Základy programování v PHP

Vertrigo serverVertrigo server

• pro naše účely stačí základní konfiguracepro naše účely stačí základní konfigurace• složka, ve které budou interpretovány php scripty složka, ve které budou interpretovány php scripty

má tuto cestu:má tuto cestu:C:/Program Files/VertrigoServ/wwwC:/Program Files/VertrigoServ/www

• v prohlížeči se příslušný soubor zobrazí, pokud v prohlížeči se příslušný soubor zobrazí, pokud zadáte:zadáte:

http://localhost/http://localhost/

příklad:příklad:C:/Program Files/VertrigoServ/www/zdroje/pokus.phpC:/Program Files/VertrigoServ/www/zdroje/pokus.php

bude interpretován v prohlížeči pokud zadáte:bude interpretován v prohlížeči pokud zadáte:http://localhost/zdroje/pokus.phphttp://localhost/zdroje/pokus.php

Page 23: Základy programování v PHP

základní syntaxe jazyka phpzákladní syntaxe jazyka php

implementace php do htmlimplementace php do html

syntaxesyntaxe

komentářekomentáře

Page 24: Základy programování v PHP

vložení php do htmlvložení php do html

• tři způsoby vložení php scriptutři způsoby vložení php scriptu<? <? [PHP kód][PHP kód] ?> ?>

<?php <?php [PHP kód][PHP kód] ?> ?>

<SCRIPT LANGUAGE="php"> php <SCRIPT LANGUAGE="php"> php

[PHP kód][PHP kód]

</SCRIPT></SCRIPT>

• doporučuji druhý způsobdoporučuji druhý způsob• budeme používat první způsob budeme používat první způsob

Page 25: Základy programování v PHP

vložení php do htmlvložení php do html

Page 26: Základy programování v PHP

syntaxe phpsyntaxe php

• všechny datové strukturyvšechny datové struktury– příkazypříkazy– deklaracedeklarace– funkcefunkce

• musí být odděleny středníkemmusí být odděleny středníkem• pokud se objeví při zobrazení stránky chyba pokud se objeví při zobrazení stránky chyba

Parse Error,Parse Error, většinou někde chybí středník většinou někde chybí středník• nezáleží na počtu mezer nebo řádek za nezáleží na počtu mezer nebo řádek za

středníkemstředníkem

Page 27: Základy programování v PHP

syntaxe phpsyntaxe php

• tohle hlásí chybutohle hlásí chybu

• tohle fungujetohle funguje

Page 28: Základy programování v PHP

komentářekomentáře

• komentáře jsou úseky kódu, které server ani komentáře jsou úseky kódu, které server ani prohlížeč nezobrazuje, resp. nezpracováváprohlížeč nezobrazuje, resp. nezpracovává

• slouží ke zvýšení přehlednosti kóduslouží ke zvýšení přehlednosti kódu• naučme se je používat hned, později to bude naučme se je používat hned, později to bude

automatickéautomatické• u rozsáhlejších programů nezbytnou u rozsáhlejších programů nezbytnou

podmínkoupodmínkou

Page 29: Základy programování v PHP

komentářekomentáře

• jednořádkový komentář začíná dojicí znaků jednořádkový komentář začíná dojicí znaků //// (lomítko) nebo znakem (lomítko) nebo znakem ## (Alt Gr+X) (Alt Gr+X)

• dvouřádkový komentář začíná dvouřádkový komentář začíná /*/* (lomítko, hvězdička) (lomítko, hvězdička) a končí opačně, tj. a končí opačně, tj. */*/

Page 30: Základy programování v PHP

výpis na obrazovkuvýpis na obrazovku

echo ();echo ();

print();print();

formátování a escape sekvenceformátování a escape sekvence

Page 31: Základy programování v PHP

echo ();echo ();

• tento příkaz vypíše obsah proměnné, řetězec, tento příkaz vypíše obsah proměnné, řetězec, číslo, html tag….číslo, html tag….

• možné zápisy:možné zápisy:echo (echo (““Hello world“);Hello world“);

echo ($promenna);echo ($promenna);

echo (echo (““<strong>odstavec</strong>“);<strong>odstavec</strong>“);

Page 32: Základy programování v PHP

echo – příklady kódůecho – příklady kódů

Page 33: Základy programování v PHP

echo – „zlobivé“ znakyecho – „zlobivé“ znaky

• zvláštní formátování mají znaky zvláštní formátování mají znaky ““, \, <, $, \, <, $• před nimi se používá znaku \před nimi se používá znaku \• používá se hlavně při formátování html tagůpoužívá se hlavně při formátování html tagů• těmto znakům se říká „escape sekvence“těmto znakům se říká „escape sekvence“

Page 34: Základy programování v PHP

escape sekvenceescape sekvence

Page 35: Základy programování v PHP

escape sekvence – ještě jednouescape sekvence – ještě jednou

Page 36: Základy programování v PHP

jak jinak na uvozovky?jak jinak na uvozovky?

Page 37: Základy programování v PHP

úkolúkol

• s použitím příkazu echo(), escape sekvencí a s použitím příkazu echo(), escape sekvencí a html tagů <div> <strong> <em> <a> <h2>html tagů <div> <strong> <em> <a> <h2>

• napište v PSPadu php script, který zobrazí v napište v PSPadu php script, který zobrazí v okně prohlížeče tento text:okně prohlížeče tento text:

• výsledek uložte do vaší složkyvýsledek uložte do vaší složky

Page 38: Základy programování v PHP

proměnnéproměnné

druhy proměnnýchdruhy proměnných

datové typydatové typy

operátoryoperátory

Page 39: Základy programování v PHP

proměnnáproměnná

• programovací jazyk pracuje s hodnotamiprogramovací jazyk pracuje s hodnotami• hodnoty se ukládají do proměnnýchhodnoty se ukládají do proměnných• proměnná má:proměnná má:

– název (uvozený znakem $)název (uvozený znakem $)– hodnotouhodnotou

• hodnota proměnné v programu jednoznačně hodnota proměnné v programu jednoznačně danádaná

• během programu se však může měnitběhem programu se však může měnit

Page 40: Základy programování v PHP

typy proměnnýchtypy proměnných

• php automaticky po přiřazení hodnoty vybere php automaticky po přiřazení hodnoty vybere vhodný datový typvhodný datový typ$zapnuto=true //typ boolean$zapnuto=true //typ boolean

$nazev=$nazev=““aleš“ //typ stringaleš“ //typ string

Page 41: Základy programování v PHP

proměnné typy a trikyproměnné typy a triky

• jednopísmenné názvy ne – po týdnu nevím, co je jednopísmenné názvy ne – po týdnu nevím, co je proměnná $d a $g ?proměnná $d a $g ?

• příliš dlouhé názvy také ne – zápis jde a snadněji se příliš dlouhé názvy také ne – zápis jde a snadněji se udělá chyba udělá chyba

• používejte sebepopisující názvy, jeden jazyk používejte sebepopisující názvy, jeden jazyk – četina bez hacku a carekčetina bez hacku a carek– angličtinaangličtina

• používejte velbloudí notaci – pro přehlednost používejte velbloudí notaci – pro přehlednost vkládejte do názvu proměnné velká písmena:vkládejte do názvu proměnné velká písmena:$PopisTabulky$PopisTabulky$FindCursorPosition$FindCursorPosition$MoveCursor$MoveCursor

Page 42: Základy programování v PHP

operátoryoperátory

• běžné operátoryběžné operátory• podobná syntaxe podobná syntaxe

jako v jazyce C++jako v jazyce C++• řetězce spojujeme řetězce spojujeme

pomocí tečky (.)pomocí tečky (.)

Page 43: Základy programování v PHP

příklad 1příklad 1

Page 44: Základy programování v PHP

příklad 2příklad 2

Page 45: Základy programování v PHP

úkolúkol

• vytvořte script, který bude kombinovat příkaz vytvořte script, který bude kombinovat příkaz echo a proměnné různých typůecho a proměnné různých typů

• proveďte různé operace s proměnnými, proveďte různé operace s proměnnými, spojujte řetězce atd.spojujte řetězce atd.

• výsledek uložte do vaší složkyvýsledek uložte do vaší složky

Page 46: Základy programování v PHP

větvení programuvětvení programu

typy podmínektypy podmínek

Page 47: Základy programování v PHP

if …. elseif …. else

• strukturastrukturaif (výraz, podmínka) { …….. }if (výraz, podmínka) { …….. }

if (výraz, podmínka) { …….. } else { ……. }if (výraz, podmínka) { …….. } else { ……. }

if (výraz, podmínka) { …….. } else if { ……. }if (výraz, podmínka) { …….. } else if { ……. }

else else { ……. }{ ……. }

• v závorce se testuje proměnná typu boolean v závorce se testuje proměnná typu boolean nebo jakýkoliv výraz pomocí porovnávacích nebo jakýkoliv výraz pomocí porovnávacích operátorůoperátorů

Page 48: Základy programování v PHP

if – příklad 1if – příklad 1

Page 49: Základy programování v PHP

if - příklad 2if - příklad 2

Page 50: Základy programování v PHP

podmínky - tipy a trikypodmínky - tipy a triky

• bez podmínek se neobejdete. Naučte se je. Z hlavy.bez podmínek se neobejdete. Naučte se je. Z hlavy.příkaz v některé větvi podmínky může být zase příkaz v některé větvi podmínky může být zase podmínka. podmínka. Vnořené podmínkyVnořené podmínky jsou někdy potřeba, jsou někdy potřeba, ale mohou pěkně znepřehlednit kód. ale mohou pěkně znepřehlednit kód.

• Zvažte použití větve Zvažte použití větve elseelse v podmínce vždy, když si v podmínce vždy, když si nejste absolutně jisti, že větve nejste absolutně jisti, že větve elseifelseif pokrývají pokrývají všechny alternativy. všechny alternativy.

• Formátujte kód tak, abyste se v něm vyznaliFormátujte kód tak, abyste se v něm vyznali• KOMENTUJTEKOMENTUJTE. Podmínky mohou být složité a za půl . Podmínky mohou být složité a za půl

roku, když budete potřebovat skript oprášit už roku, když budete potřebovat skript oprášit už nebudete vědět, proč jste je psali. nebudete vědět, proč jste je psali.

Page 51: Základy programování v PHP

podmínky - úkolpodmínky - úkol

• vytvořte 3 scripty, které budou využívat vytvořte 3 scripty, které budou využívat větvení pomocí podmínky větvení pomocí podmínky if elseif if elseif aa else else

• v prvním skriptu testujte výraz typu booleanv prvním skriptu testujte výraz typu boolean• v druhém skriptu testujte číselnou v druhém skriptu testujte číselnou

proměnnou pomocí operátorů proměnnou pomocí operátorů <, >, <=, =><, >, <=, =>• ve třetím scriptu testujte řetězce pomocí ve třetím scriptu testujte řetězce pomocí

operátorů operátorů == , !=== , != a logických operátorů a logických operátorů &&&& a a ||||

• uložte do vaší složkyuložte do vaší složky

Page 52: Základy programování v PHP

switchswitch

• nahrazuje níže uvedenou strukturu:nahrazuje níže uvedenou strukturu:if (výraz1) {…………}if (výraz1) {…………}elseif (výraz2) {…………}elseif (výraz2) {…………}elseif (výrazn) {…………}elseif (výrazn) {…………}else {…………………….}else {…………………….}

• má tento tvarmá tento tvarswitch (podmínka) {switch (podmínka) {

case výraz1:case výraz1:case výraz2:case výraz2:case výraz3:case výraz3:default:default:

}}

Page 53: Základy programování v PHP

switch - příkladswitch - příklad

Page 54: Základy programování v PHP

smyčky - cyklysmyčky - cykly

cyklus forcyklus for

cyklus do….whilecyklus do….while

cyklus whilecyklus while

Page 55: Základy programování v PHP

cyklus forcyklus for

• cyklus s parametrem – víme, kolikrát cyklus cyklus s parametrem – víme, kolikrát cyklus proběhneproběhne

for ($i=1; $i<=20; $ i++) { ……. }for ($i=1; $i<=20; $ i++) { ……. }

• před započetím konkrétního cyklu se vyhodnotí před započetím konkrétního cyklu se vyhodnotí výraz druhý (zde $i<=20)výraz druhý (zde $i<=20)

• neplatí-li podmínka, cyklus se ukončíneplatí-li podmínka, cyklus se ukončí• platí-li, cyklus pokračuje dále a provede se sekvence platí-li, cyklus pokračuje dále a provede se sekvence

mezi složenými závorkamimezi složenými závorkamipo ukončení těla smyčky se provede třetí výraz (zde po ukončení těla smyčky se provede třetí výraz (zde se parametr $i zvýší o jedničkuse parametr $i zvýší o jedničku

• vše se opakujevše se opakuje

Page 56: Základy programování v PHP

for - příkladfor - příklad

Page 57: Základy programování v PHP

cyklus s podmínkoucyklus s podmínkou

• s podmínkou na začátku :s podmínkou na začátku :• tělo cyklu proběhne jen tehdy, je-li platná tělo cyklu proběhne jen tehdy, je-li platná

podmínkapodmínkawhile (podmínka) {…….}while (podmínka) {…….}

• s podmínkou na konci :s podmínkou na konci :• tělo cyklu proběhne vždy minimálně jednoutělo cyklu proběhne vždy minimálně jednou• opakuje se, pokud platí podmínkaopakuje se, pokud platí podmínka

do {…….} while (podmínka)do {…….} while (podmínka)

Page 58: Základy programování v PHP

příklad - whilepříklad - while

Page 59: Základy programování v PHP

příklad – do…whilepříklad – do…while

Page 60: Základy programování v PHP

cykly – tipy a trikycykly – tipy a triky

• většinou jsou oblíbenější smyčky s podmínkou na většinou jsou oblíbenější smyčky s podmínkou na začátkuzačátku

• Smyčky se mohou vnořovat. Formátujte si kód Smyčky se mohou vnořovat. Formátujte si kód (=používejte tabulátor)(=používejte tabulátor)

• komentářekomentáře, zejména u delších smyček. , zejména u delších smyček. Vůbec totiž Vůbec totiž nemusí být jasné, kde smyčka začala, když je kód nemusí být jasné, kde smyčka začala, když je kód dlouhý. Komentujte konce smyček.dlouhý. Komentujte konce smyček.

• velký pozor na podmínky – použijete-li místo velký pozor na podmínky – použijete-li místo porovnávacího operátoru (==) operátor přiřazení (=) porovnávacího operátoru (==) operátor přiřazení (=) celý skript se zablokuje – vytvořili jste nekonečnou celý skript se zablokuje – vytvořili jste nekonečnou smyčku…..smyčku…..

Page 61: Základy programování v PHP

proměnná typu poleproměnná typu pole

jednorozměrné polejednorozměrné pole

vícerozměrné polevícerozměrné pole

Page 62: Základy programování v PHP

k čemu pole?k čemu pole?

• do jedné proměnné můžeme uložit indexová do jedné proměnné můžeme uložit indexová datadata

• např: dny v týdnu, seznamynapř: dny v týdnu, seznamy$DenvTydnu[1]=“pondělí“;$DenvTydnu[1]=“pondělí“;$DenvTydnu[2]=“úterý“;$DenvTydnu[2]=“úterý“;$DenvTydnu[7]=“neděle“;$DenvTydnu[7]=“neděle“;

• lze použít asociativní pole:lze použít asociativní pole:$PocetObyvatel[$PocetObyvatel[““Blovice“]=4005;Blovice“]=4005;$PocetObyvatel[$PocetObyvatel[““Habří“]=0;Habří“]=0;

Page 63: Základy programování v PHP

definice poledefinice pole

• výčtem (viz předchozí strana)výčtem (viz předchozí strana)• funkcí Arrayfunkcí Array

$Pracovni Tym= Array ($Pracovni Tym= Array (“Ludva”,”“Ludva”,”Gita“,“Adolf“,“Čeněk“);Gita“,“Adolf“,“Čeněk“);

• POZOR! indexuje se standardně od nulyPOZOR! indexuje se standardně od nuly

$Mesta = Array(1=>“Blovice“, 2=>“Nepomuk“, 3=>“Měčín“);$Mesta = Array(1=>“Blovice“, 2=>“Nepomuk“, 3=>“Měčín“);

Page 64: Základy programování v PHP
Page 65: Základy programování v PHP
Page 66: Základy programování v PHP

vícerozměrné polevícerozměrné pole

Page 67: Základy programování v PHP

funkcefunkce

matematické funkcematematické funkceřetězcové funkceřetězcové funkce

funkce pro práci s polifunkce pro práci s polivlastní funkcevlastní funkce

Page 68: Základy programování v PHP

funkcefunkce

• předdefinovaný (uživatelem nebo předdefinovaný (uživatelem nebo standardně) úsek kódu, který vykonává standardně) úsek kódu, který vykonává nějakou činnost nebo vrací hodnotunějakou činnost nebo vrací hodnotu

• rozlišujeme procedury a vlastní funkcerozlišujeme procedury a vlastní funkce– proceduraprocedura - úsek kódu, který vykonává nějakou - úsek kódu, který vykonává nějakou

sekvenci příkazůsekvenci příkazů– funkcefunkce – vrací nějakou hodnotu – vrací nějakou hodnotu

Page 69: Základy programování v PHP

matematické funkcematematické funkce

• abs — Absolutní hodnota abs — Absolutní hodnota • ceil — Zaokrouhlení zlomků nahoru ceil — Zaokrouhlení zlomků nahoru • cos — Cosinus cos — Cosinus • exp — Vypočtení mocniny čísla e (základ přirozeného logaritmu) exp — Vypočtení mocniny čísla e (základ přirozeného logaritmu) • floor — Zaokrouhlení zlomků dolů floor — Zaokrouhlení zlomků dolů • hexdec — Hexadecimální na desítkové hexdec — Hexadecimální na desítkové • log10 — Base-10 logarithm log10 — Base-10 logarithm • log — Natural logarithm log — Natural logarithm • max — Nalezení největší hodnoty max — Nalezení největší hodnoty • min — Nalezení nejmenší hodnoty min — Nalezení nejmenší hodnoty • pi — Získání hodnoty pí pi — Získání hodnoty pí • pow — Mocnina pow — Mocnina • rand — Generování náhodného čísla rand — Generování náhodného čísla • round — Zaokrouhlení čísla round — Zaokrouhlení čísla • sin — Sinus sin — Sinus • sqrt — Odmocnina sqrt — Odmocnina • tan — Tangens tan — Tangens

Page 70: Základy programování v PHP

řetězcové funkceřetězcové funkce

• addslashes — Opatřit řetězec lomítky addslashes — Opatřit řetězec lomítky • chr — Vrátit určitý znak chr — Vrátit určitý znak • explode — Rozděluje řetězec jiným řetězcem explode — Rozděluje řetězec jiným řetězcem • implode — Spojit prvky pole pomocí řetězce implode — Spojit prvky pole pomocí řetězce • join — Spojit prvky pole pomocí řetězce join — Spojit prvky pole pomocí řetězce • md5 — Spočítat MD5 hash řetězce md5 — Spočítat MD5 hash řetězce • ord — Vrátit ASCII hodnotu znaku ord — Vrátit ASCII hodnotu znaku • strchr — Najít první výskyt znaku strchr — Najít první výskyt znaku • strlen — Zjistit délku řetězce strlen — Zjistit délku řetězce • strpos — Najít pozici prvního výskytu řetězce strpos — Najít pozici prvního výskytu řetězce • strrchr — Najít poslední výskyt znaku v řetězci strrchr — Najít poslední výskyt znaku v řetězci • strrev — Obrátit řetězec strrev — Obrátit řetězec • strstr — Najít první výskyt řetězce strstr — Najít první výskyt řetězce • strtolower — Změnit řetězec na malá písmena strtolower — Změnit řetězec na malá písmena • strtoupper — Změnit řetězec na velká písmena strtoupper — Změnit řetězec na velká písmena • substr_replace — Nahradit část řetězce jiným řetězcem substr_replace — Nahradit část řetězce jiným řetězcem • substr — Vrátit část řetězce substr — Vrátit část řetězce • ucfirst — Změní první písmeno řetězce na velké ucfirst — Změní první písmeno řetězce na velké • ucwords — Změnit první znak každého slova v řetězci na velké písmeno ucwords — Změnit první znak každého slova v řetězci na velké písmeno

Page 71: Základy programování v PHP

funkce pro práci s polifunkce pro práci s poli

• array_merge — Sloučit dvě nebo více polí array_merge — Sloučit dvě nebo více polí • array_push — Přidat jeden nebo více prvků na konec pole array_push — Přidat jeden nebo více prvků na konec pole • array_rand — Vybrat náhodně jeden nebo více prvků pole array_rand — Vybrat náhodně jeden nebo více prvků pole • array_reverse — Vrátit pole s prvky v opačném pořadí array_reverse — Vrátit pole s prvky v opačném pořadí • array_shift — Odstranit prvek ze začátku pole array_shift — Odstranit prvek ze začátku pole • array_splice — Odstranit část pole a nahradit ji něčím jiným array_splice — Odstranit část pole a nahradit ji něčím jiným • array_unique — Odstranit z pole duplicitní hodnoty array_unique — Odstranit z pole duplicitní hodnoty • array_values — Vrátit všechny hodnoty v poli array_values — Vrátit všechny hodnoty v poli • array — Vytvořit pole array — Vytvořit pole • end — Nastavit vnitřní ukazatel pole na jeho poslední prvek end — Nastavit vnitřní ukazatel pole na jeho poslední prvek • foreach – Posunout interní ukazatel pole foreach – Posunout interní ukazatel pole • pos — Získat současný prvek pole pos — Získat současný prvek pole • reset — Nastavit interní ukazatel pole na jeho první prvek reset — Nastavit interní ukazatel pole na jeho první prvek • rsort — Třídit pole sestupně rsort — Třídit pole sestupně • shuffle — Zamíchat pole shuffle — Zamíchat pole • sizeof — Zjistit počet prvků v poli sizeof — Zjistit počet prvků v poli • sort — Třídit pole sort — Třídit pole

Page 72: Základy programování v PHP

příklady práce s funkcemipříklady práce s funkcemi

Page 73: Základy programování v PHP

úkolúkol

- vyzkoušejte uvedené matematické funkcevyzkoušejte uvedené matematické funkce- za zadaného čísla (poloměru kružnice) spočítá za zadaného čísla (poloměru kružnice) spočítá

obvod a obsah kruhuobvod a obsah kruhu- výsledek zaokrouhlí dolůvýsledek zaokrouhlí dolů

- vyzkoušejte uvedené řetězcové funkcevyzkoušejte uvedené řetězcové funkce- zadaná věta (v proměnné $veta) zadaná věta (v proměnné $veta) - spočte počet slovspočte počet slov- zjistí první výskyt spojky „a“zjistí první výskyt spojky „a“- převede řetězec a velká písmena a vypíšepřevede řetězec a velká písmena a vypíše

Page 74: Základy programování v PHP

vlastní definice - proceduryvlastní definice - procedury

Page 75: Základy programování v PHP

vlastní definice - funkcevlastní definice - funkce

Page 76: Základy programování v PHP

úkolúkol

• Definuj proceduru pro výpis aktuálního data Definuj proceduru pro výpis aktuálního data a času a dne v týdnua času a dne v týdnu

• Definuj tři funkce s parametrem pro výpočet Definuj tři funkce s parametrem pro výpočet obsahu a obvodu obdélníka, pro výpočet obsahu a obvodu obdélníka, pro výpočet diskriminantu kvadratické rovnicediskriminantu kvadratické rovnice

diskriminant

Page 77: Základy programování v PHP

zpracování formulářových datzpracování formulářových dat

způsoby předávání proměnných způsoby předávání proměnných mezi soubory a serveremmezi soubory a serverem

čtení a vyhodnocování dat z čtení a vyhodnocování dat z formulářůformulářů

Page 78: Základy programování v PHP

jak posílat proměnné?jak posílat proměnné?

• GETGET – metoda, kdy je proměnná předávána v URL – metoda, kdy je proměnná předávána v URL stránkystránky– hodí se pro kratší informacehodí se pro kratší informace– nulové zabezpečenínulové zabezpečení– lze posílat informace přímo zadáním do prohlížečelze posílat informace přímo zadáním do prohlížeče

• POSTPOST – metoda, kdy se proměnné předávají jako – metoda, kdy se proměnné předávají jako samostatný HTML objektsamostatný HTML objekt– delší informacedelší informace– malinko lépe zabezpečenémalinko lépe zabezpečené

• použití těchto metod se definuje v hlavičce formuláře použití těchto metod se definuje v hlavičce formuláře (zadáním parametru method)(zadáním parametru method)

Page 79: Základy programování v PHP

jak mají vypadat formuláře?jak mají vypadat formuláře?

• v tagu <form> musí být definovány parametry v tagu <form> musí být definovány parametry „„actionaction“ (název souboru se scriptem, který se po “ (název souboru se scriptem, který se po odeslání formuláře spustí)odeslání formuláře spustí)

• „„methodmethod“ (GET nebo POST)“ (GET nebo POST)• všechny prvky formulář musí být identifikovány všechny prvky formulář musí být identifikovány

jménem (parametr „jménem (parametr „namename“)“)• musí obsahovat odesílací prvek („musí obsahovat odesílací prvek („submitsubmit“);“);

• obsah formuláře se po odeslání ukládá do obsah formuláře se po odeslání ukládá do asociativního pole asociativního pole $_REQUEST, $_POST$_REQUEST, $_POST

Page 80: Základy programování v PHP
Page 81: Základy programování v PHP

jak vrátit zpracovaný script k jak vrátit zpracovaný script k opravě?opravě?

• obsah všech odeslaných proměnných je v obsah všech odeslaných proměnných je v poli poli $_REQUEST$_REQUEST, resp. , resp. $_POST$_POST (u metody (u metody post)post)

• pomocí funkce echo lze vypsat do pomocí funkce echo lze vypsat do formulářových polí nějaký obsahformulářových polí nějaký obsah

• odkazem nebo skrytým formulářem vrátíme odkazem nebo skrytým formulářem vrátíme obsah polí zpět do souboru s formulářemobsah polí zpět do souboru s formulářem

• zbytek je stejnýzbytek je stejný• dva způsoby jak předat tato data:dva způsoby jak předat tato data:

– pomocí skrytých formulářůpomocí skrytých formulářů– pomocí metody GET v hlavičce dokumentupomocí metody GET v hlavičce dokumentu

Page 82: Základy programování v PHP
Page 83: Základy programování v PHP
Page 84: Základy programování v PHP

dva v jednomdva v jednom

• velmi často se používá zadávání i velmi často se používá zadávání i vyhodnocování dat v jednom souboruvyhodnocování dat v jednom souboru

• problém – jak má formulář vědět co se právě problém – jak má formulář vědět co se právě děje?děje?

• testujeme obsah polí testujeme obsah polí $_REQUEST, $_POST$_REQUEST, $_POST

Page 85: Základy programování v PHP
Page 86: Základy programování v PHP

úkolúkol

• modifikujte příklady z minulého týdne tak, modifikujte příklady z minulého týdne tak, aby se vstupní data vkládala pomocí různých aby se vstupní data vkládala pomocí různých typů formulářůtypů formulářů

Page 87: Základy programování v PHP

konstrukce „minichatu“konstrukce „minichatu“

• po odeslání se zobrazí čas, jméno a text po odeslání se zobrazí čas, jméno a text zprávyzprávy

• výsledky budou v proměnné typu STRINGvýsledky budou v proměnné typu STRING• normálně se výsledky ukládají do normálně se výsledky ukládají do databázedatabáze• v tomto případě po ukončení prohlížeče v tomto případě po ukončení prohlížeče

informace zmizíinformace zmizí

Page 88: Základy programování v PHP
Page 89: Základy programování v PHP

DatabázeDatabáze

mySQLmySQL

phpmyAdminphpmyAdmin

Page 90: Základy programování v PHP

mySQLmySQL

• databáze primárně určená pro spolupráci s phpdatabáze primárně určená pro spolupráci s php• mySQL databáze je součástí freeware balíků pro mySQL databáze je součástí freeware balíků pro

provoz webového serveru (tj. i Vertriga)provoz webového serveru (tj. i Vertriga)• mySQL běží na většině serverů s free hostingem a mySQL běží na většině serverů s free hostingem a

na všech zpoplatěných službáchna všech zpoplatěných službách• všechny databázové operace (tvorba databáze, všechny databázové operace (tvorba databáze,

třídění, výpis, mazání….) lze provádět scriptytřídění, výpis, mazání….) lze provádět scripty• na řadu operací je ale vhodné použít připravený na řadu operací je ale vhodné použít připravený

nástroj pro správu databáze - nástroj pro správu databáze - phpmyAdminphpmyAdmin

Page 91: Základy programování v PHP

phpmyAdminphpmyAdmin

• spustíme z této spustíme z této nabídky:nabídky:

Page 92: Základy programování v PHP

phpmyAdminphpmyAdmin

Page 93: Základy programování v PHP

struktura php skriptu

tvorba nové tabulky

Page 94: Základy programování v PHP

struktura tabulkystruktura tabulky

• v tomto případě má tabulka 3 sloupcev tomto případě má tabulka 3 sloupce• první sloupec se jmenuje „id“ – pořadové číslo (číslo první sloupec se jmenuje „id“ – pořadové číslo (číslo

„řádku“)„řádku“)• druhý řádek obsahuje přihlašovací jméno uživateledruhý řádek obsahuje přihlašovací jméno uživatele• třetí řádek obsahuje přihlašovací heslotřetí řádek obsahuje přihlašovací heslo• tabulka bude sloužit k ověřování uživatelůtabulka bude sloužit k ověřování uživatelů

Page 95: Základy programování v PHP

vkládání obsahu vkládání obsahu

Page 96: Základy programování v PHP

procházení a třídění tabulkyprocházení a třídění tabulky

Page 97: Základy programování v PHP

úkolúkol

• vytvořte jednoduchou tabulku podle výše vytvořte jednoduchou tabulku podle výše popsaných kritériípopsaných kritérií

Page 98: Základy programování v PHP

Spolupráce s mySQLSpolupráce s mySQL

připojení k databázipřipojení k databázipřipojení k tabulcepřipojení k tabulce

položení dotazu na databázipoložení dotazu na databázioperace s výsledkem dotazuoperace s výsledkem dotazu

Page 99: Základy programování v PHP

připojení k databázipřipojení k databázi

• jméno serveru (localhost, jméno serveru (localhost, www.webzdarma.czwww.webzdarma.cz.....).....)• jméno uživatele (vertrigo, newstyle.wz.cz….většinou jméno uživatele (vertrigo, newstyle.wz.cz….většinou

přidělí provider)přidělí provider)• heslo (_root, zvolíte si sami na webu)heslo (_root, zvolíte si sami na webu)• název databáze (někdy nelze vytvářet databáze, máte název databáze (někdy nelze vytvářet databáze, máte

je přidělené (často stejný název jako jméno je přidělené (často stejný název jako jméno uživatele)uživatele)

Page 100: Základy programování v PHP

připojení k databázipřipojení k databázi

• musíme ošetřit chyby – připojení se nemusí musíme ošetřit chyby – připojení se nemusí povést (a často se nepovede)povést (a často se nepovede)

• vypíše text a chybu (z funkce mysql_error) vypíše text a chybu (z funkce mysql_error) připojenípřipojení

Page 101: Základy programování v PHP

připojení k databázipřipojení k databázi

• je vhodné do externího souboru nadefinovat je vhodné do externího souboru nadefinovat parametry připojení (SERVER, UŽIVATEL, parametry připojení (SERVER, UŽIVATEL, HESLO A JMÉNO DATABÁZE)HESLO A JMÉNO DATABÁZE)

• tyto parametry uložíme do proměnných nebo tyto parametry uložíme do proměnných nebo konstant a soubor připojíme (include) do konstant a soubor připojíme (include) do každého souborukaždého souboru

• pokud potřebujeme změnit – měníme jen v pokud potřebujeme změnit – měníme jen v jednom souborujednom souboru

Page 102: Základy programování v PHP

příkazy v mySQLpříkazy v mySQLDefiničníDefiniční• Umožňují spravovat strukturu databázeUmožňují spravovat strukturu databáze• CREATE TABLE, DROP TABLECREATE TABLE, DROP TABLE VýběrovéVýběrové• Umožňují získat z databáze dataUmožňují získat z databáze data• SELECTSELECT

PřidávacíPřidávací• Umožňují přidávat nová data do tabulky nebo tabulekUmožňují přidávat nová data do tabulky nebo tabulek• INSERTINSERT

AktualizačníAktualizační• Umožňují měnit existující data v tabulkáchUmožňují měnit existující data v tabulkách• UPDATE, REPLACEUPDATE, REPLACE

OdstraňovacíOdstraňovací• Umožňují smazat řádky z tabulky nebo tabulekUmožňují smazat řádky z tabulky nebo tabulek• DELETEDELETE

Page 103: Základy programování v PHP

čtení z databázečtení z databáze

• SELECT [seznam polí] FROM [název tabulky SELECT [seznam polí] FROM [název tabulky nebo tabulek] WHERE [podmínka] ORDER nebo tabulek] WHERE [podmínka] ORDER BY [seřazení]BY [seřazení]

Page 104: Základy programování v PHP

čtení z databázečtení z databáze

• tříděnítřídění – používá se atribut ORDER BY (název – používá se atribut ORDER BY (název třídícího znaku) DESC (sestupně) ASC třídícího znaku) DESC (sestupně) ASC (vzestupně)(vzestupně)

• vyhledávánívyhledávání – používá se atribut WHERE – používá se atribut WHERE (název sloupce) LIKE (příznak)(název sloupce) LIKE (příznak)

tento dotaz vybere všechny záznamy, které ve tento dotaz vybere všechny záznamy, které ve sloupci „town“ mají hodnotu „Blovice“sloupci „town“ mají hodnotu „Blovice“

Page 105: Základy programování v PHP

úkolúkolkontrola přihlašovacího jména kontrola přihlašovacího jména

• formulář s přihlašovacím jménem a heslemformulář s přihlašovacím jménem a heslem• po odeslání kontrola databáze, zda obsahuje po odeslání kontrola databáze, zda obsahuje

jménojméno• kontrola, zda k příslušnému jménu je zadáno kontrola, zda k příslušnému jménu je zadáno

správné heslosprávné heslo• výpis podle situace (není jméno, špatné výpis podle situace (není jméno, špatné

heslo, vše je ok)heslo, vše je ok)

Page 106: Základy programování v PHP

vkládání údajů do databázevkládání údajů do databáze

• INSERT INTO [název tabulky] (sloupec, ...) INSERT INTO [název tabulky] (sloupec, ...) VALUES (hodnota, ...) INSERT INTO [název VALUES (hodnota, ...) INSERT INTO [název tabulky] (sloupec, ...) VALUES (hodnota, ...) tabulky] (sloupec, ...) VALUES (hodnota, ...) INSERT INTO [název tabulky] (sloupec, ...) INSERT INTO [název tabulky] (sloupec, ...) VALUES (hodnota, ...) VALUES (hodnota, ...)

Page 107: Základy programování v PHP

oprava údajů v databázioprava údajů v databázi

• příkaz UPDATEpříkaz UPDATE• stejná struktura jako INSERTstejná struktura jako INSERT

export údajů z databázeexport údajů z databáze

• k dotazu SELECT přidáme atribut INTO k dotazu SELECT přidáme atribut INTO OUTFILE (název souboru)OUTFILE (název souboru)

Page 108: Základy programování v PHP

soubory v databázisoubory v databázi

• vždy zapeklitý problém – jak zapsat bez chyby a vždy zapeklitý problém – jak zapsat bez chyby a hlavně jak zobrazithlavně jak zobrazit

• v tabulce musí být sloupec se type BLOB (binární v tabulce musí být sloupec se type BLOB (binární data)data)

• data čteme z nějakého souboru na disku pomocí:data čteme z nějakého souboru na disku pomocí:$otevrit = fopen(soubor, "rb");$otevrit = fopen(soubor, "rb");$data = fread($otevrit,filesize(soubor));$data = fread($otevrit,filesize(soubor));

• obsah proměnné data vkládáme do db poté, co jsme obsah proměnné data vkládáme do db poté, co jsme jej převedli na řetězce jej převedli na řetězce

• $data = mysql_escape_string($data);$data = mysql_escape_string($data);• $data = addslashes($data);$data = addslashes($data);

Page 109: Základy programování v PHP

soubory v databázisoubory v databázi

• vždy problematické – možná lépe export do souborů vždy problematické – možná lépe export do souborů uspořádaných do složekuspořádaných do složek

• pozor na typ BLOB do 65kb, MEDIUMBLOB do 16Mbpozor na typ BLOB do 65kb, MEDIUMBLOB do 16Mb• binární data lze zobrazovat pomocí volání header binární data lze zobrazovat pomocí volání header

(specifikace, název souboru);(specifikace, název souboru);– pozor!! Header musí být první výstup do prohlížeče (jinak pozor!! Header musí být první výstup do prohlížeče (jinak

chyba) – včetně hlavičky html dokumentuchyba) – včetně hlavičky html dokumentu– v header zadáme specifikaci výstupu v header zadáme specifikaci výstupu

• Content-Type: image/jpegContent-Type: image/jpeg

• Content-Type: text/rtfContent-Type: text/rtf

Page 110: Základy programování v PHP

emailemail

formát funkce mailformát funkce mail

zasílání emailuzasílání emailu

Page 111: Základy programování v PHP

funkce mailfunkce mail

• slouží k zasílání mailůslouží k zasílání mailůmail (string $to, string $subject, string $message [, mail (string $to, string $subject, string $message [,

string $additional_headers [, string string $additional_headers [, string $additional_parameters]] )$additional_parameters]] )

• při posílání mailů z localhostu – může dojít k při posílání mailů z localhostu – může dojít k problémům – musí být zajištěn přístup k problémům – musí být zajištěn přístup k direktivě direktivě sendmailsendmail

• optimální je mít nainstalovaný mail server optimální je mít nainstalovaný mail server (např. Free SMPT server, POSTCAST Server)(např. Free SMPT server, POSTCAST Server)

Page 112: Základy programování v PHP

funkce mailfunkce mail

• tato část programu zajistí odeslání mailu na tato část programu zajistí odeslání mailu na mailserver mailserver

Page 113: Základy programování v PHP

SessionsSessions

k čemu to jek čemu to je

registrace session proměnýchregistrace session proměných

vymazání proměnnýchvymazání proměnných

Page 114: Základy programování v PHP

SessionsSessions

• způsob předávání proměnných mezi souboryzpůsob předávání proměnných mezi soubory

• proměnná se registruje a do doby vypršení platnosti (dá se proměnná se registruje a do doby vypršení platnosti (dá se nastavit), do ukončení okna prohlížeče nebo manuálního nastavit), do ukončení okna prohlížeče nebo manuálního ukončení platnosti session je tato proměnná (včetně obsahu) k ukončení platnosti session je tato proměnná (včetně obsahu) k dispozici všem php souborůmdispozici všem php souborům

• session se musí spustit direktivousession se musí spustit direktivousession_start();session_start();

• tato direktiva musí být úplně první (před jakýmkoliv odesláním tato direktiva musí být úplně první (před jakýmkoliv odesláním informací do prohlížeče, tzn. i před hlavičkou html dokumentuinformací do prohlížeče, tzn. i před hlavičkou html dokumentu

Page 115: Základy programování v PHP

SessionsSessions

• registrace session proměnnýchregistrace session proměnných

• registrace session proměnnýchregistrace session proměnných