Čtvrtek 8. září Anonymní test znalostí Čtvrtek 15. září PHP je programovací jazyk, který pracuje na straně serveru. S PHP můžete ukládat a měnit data webových stránek. PHP původně znamená Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. Aby váš počítač uměl zpracovávat PHP skripty, potřebujete na něm spustit webový server a nainstalovat PHP. Webový server můžete nainstalovat buď samostatně (například velmi oblíbený Apache), nebo využít některého instalačního balíku, které nejčastěji obsahují Apache, PHP a databázi MySQL, anebo si vystačit s Internetovou informační službou (IIS), která je součástí některých verzí Windows. PHP není nijak těžké pochopit a už se základy si lze vystačit. Umí ukládat, měnit a mazat data. Vše se odehrává na webovém serveru (kde jsou uloženy zdrojové kódy webových stránek). PHP skript se nejprve provede na serveru a potom odešle prohlížeči pouze výsledek (znamená to, že nejprve spočítá kolik je 300/30 a pak prohlížeči odešle jen číslo 10). Proto ve zdrojovém kódu najdete jen "10" (to je rozdíl oproti JavaScriptu, který počítá přímo v prohlížeči). Zdrojový kód PHP narozdíl od JavaScriptu a HTML nezobrazíte. Pomocí PHP je možné vytvořit diskuzní fórum, knihu návštěv, počítadlo, anketu, graf a dokonce si pomocí jednoduchého kódu můžete zlikvidovat celý obsah webu. Navíc máte možnost propojit vaše stránky s databázemi, např. MySQL.
K práci budeme využívat souborového manažeru Unreal Commander alespoň si ho procvičíme nejprve najdeme na disku C: složku web a tu si otevřeme vytvoříme v ní nový soubor (Shift + F4) s příponou php, např. pozdrav.php Syntaxe Programovací kód jazyka PHP je na začátku a na konci ohraničený značkami: a? > (někdy PHP a ) každý řádek musí být zakončen středníkem příkaz echo vytiskne jeden nebo více řetězců Př. Proměnné vyznačují se tím, že jejich jméno začíná znakem $ (pravý Alt+ů) hodnota se do proměnné uloží pomocí = nesmí začínat číslem je lepší psát bez diakritiky je-li proměnná ze dvou slov, je třeba spojit je podtržítkem ($prvni_cislo) záleží na velikosti písmen ($Jmeno $jmeno) je-li hodnota proměnné text, píšeme ji do uvozovek ($jmeno = Jana ), pokud je hodnotou číslo, píšeme bez uvozovek ($cislo = 12.5, místo des. čárky píšeme tečku) Spojování řetězce s proměnnou provádíme pomocí tečky
Př. Čtvrtek 22. září Vytváření formuláře a jeho vyhodnocení formular.html <html> <body bgcolor="yellow"> <h1>dotazník</h1> <form action="zpracuje.php" method="post"> Zadejte své jméno<br> <input type="text" name="jmeno"><br> <input type="submit" value="odeslat"> </form> </body> </html> zpracuje.php $jmeno=$_post["jmeno"]; echo "Vaše jmémo je ". $jmeno;
Čtvrtek 29. září Pokračování tvorby formuláře formular.html zpracuje.php <html> <body bgcolor="yellow"> <h1>dotazník</h1> <form action="zpracuje.php" method="post"> Zadejte svoje jméno<br> <input type="text" name="jmeno"><br> Napište příjmení<br> <input type="text" name="prijmeni"><br> <input type="submit" value="odeslat"> </html> </form> </body> </html> $jmeno=$_post["jmeno"]; echo "Jmenujete se ". $jmeno." ". $prijmeni. "<br>"; Čtvrtek 6. října zpracuje.php $jmeno=$_post["jmeno"]; $prijmeni=$_post["prijmeni"]; $trida=$_post["trida"]; $it=$_post["it"]; echo "Vaše jméno je ". $jmeno. " ". $prijmeni; echo "<br>"; echo "Navštěvujete třídu ". $trida; echo "<br>"; echo "Informační technologie ". $it. ".";
formular.html <body bgcolor="yellow"> <h1>dotazník</h1> <form action="zpracuje.php" method="post"> Zadejte své jméno<br> <input type="text" name="jmeno"><br> Zadejte své příjmení<br> <input type="text" name="prijmeni"><br> Vyber svoji třídu: <select name="trida"> <option value="prima">prima</option> <option value="sekunda">sekunda</option> <option value="tercie">tercie</option> <option value="kvarta">kvarta</option> <option value="kvinta">kvinta</option> <option value="sexta">sexta</option> <option value="septima">septima</option> <option value="oktava">oktáva</option> </select><br> Předmět informační technologie <br> <input type="radio" name="it" value="nesnáším">nesnáším<br> <input type="radio" name="it" value="vydržím">vydržím<br> <input type="radio" name="it" value="mám rád">mám rád<br> <input type="submit" value="odeslat"> </form> </body> </html>
Čtvrtek 13. října Pokračování tvorby formuláře formular.html <html> <body bgcolor="yellow"> <h1>dotazník</h1> <form action="zpracuje.php" method="post"> Zadejte své jméno<br> <input type="text" name="jmeno"><br> Zadejte své příjmení<br> <input type="text" name="prijmeni"><br> Vyber svoji třídu: <select name="trida"> <option value="prima">prima</option> <option value="sekunda">sekunda</option> <option value="tercie">tercie</option> <option value="kvarta">kvarta</option> <option value="kvinta">kvinta</option> <option value="sexta">sexta</option> <option value="septima">septima</option> <option value="oktava">oktáva</option> </select><br> Předmět informační technologie <br> <input type="radio" name="it" value="nesnáším">nesnáším<br> <input type="radio" name="it" value="vydržím">vydržím<br> <input type="radio" name="it" value="mám rád">mám rád<br> V IT mne baví:<br> <input type="checkbox" name="bavi1" value="webové stránky" >webové stránky<br> <input type="checkbox" name="bavi2" value="programování">programování<br> <input type="checkbox" name="bavi3" value="grafika">grafika<br> <input type="submit" value="odeslat"> </form> </body> </html> zpracuje.php $jmeno=$_post["jmeno"]; $prijmeni=$_post["prijmeni"]; $trida=$_post["trida"]; $it=$_post["it"]; $bavi1=""; if ( isset($_post["bavi1"]) ) $bavi1=$_post["bavi1"]; $bavi2=""; if ( isset($_post["bavi2"]) ) $bavi2=$_post["bavi2"]; $bavi3=""; if ( isset($_post["bavi3"]) ) $bavi3=$_post["bavi3"]; echo "Vaše jméno je ". $jmeno. " ". $prijmeni; echo "<br>";
echo "Navštěvujete třídu ". $trida; echo "<br>"; echo "Informační technologie ". $it. ".<br>"; echo "Baví mne "; echo " ". $bavi1; echo " ". $bavi2; echo " ". $bavi3; Příště ještě podrobně vysvětlím php soubor Čtvrtek 3. listopadu Prověrka Čtvrtek 10. listopadu Přihlášení uživatelským jménem a heslem heslo.html <html> <head> <title>heslo</title> </head> <body bgcolor="#8ad9f7"> <form action="prihlaseni.php" method="post" > Uživatel<br> <input type="text" name="jmeno" value="napiš svoje jméno" ><br> Heslo<br> <input type="password" name="heslo" value=""><br><br> <input type="submit" value="přihlásit">
</form> </body> </html> prihlaseni.php $spravne_jmeno="nováková"; $spravne_heslo="kvinta11"; if ($_POST["jmeno"]==$spravne_jmeno and $_POST["heslo"]==$spravne_heslo) echo Jsi přihlášen ; else echo "Není správné heslo nebo jméno"; Čtvrtek 24. listopadu Soubor prihlaseni.php, zpracuje přihlašovací formulář a otevře stránku formular.html $spravne_jmeno="ivana"; $spravne_heslo="matylda"; If ($_POST["jmeno"]==$spravne_jmeno and $_POST["heslo"]==$spravne_heslo) Header ("Location:formular.html") Funkce pro práci s datem a časem Funkce time vrací aktuální časové razítko - počet sekund od 1. 1. 1970 00:00:00 Funkce date formátuje místní datum a čas datum.php echo time(). "<br>"; echo date("d.m.y");
Seznam parametrů pro funkci date (vytvořil Slávek Müller) Funkce mktime vrací unixové časové razítko k zadanému datu a času (tj. počet sekund, které uplynuly od 1. 1. 1970 k určenému datu a času).
$zvoni=mktime(9,25,0,11,23,2011)-time(); echo date("j n Y")."<br>"; echo time()."<br>"; echo mktime(9,25,0,11,23,2011)."<br>"; //hodina, minuta,sekunda,měsíc,den,rok echo "Zvoní za ".$zvoni/60." minut"; Čtvrtek 1. prosince Samostatně napsat program, který ukazuje, kolik dní zbývá do Štědrého dne $vanoce = mktime(0,0,0,12,24,2011); $zbyva=$vanoce-time(); echo "Do Štědrého dne zbývá ". floor(($zbyva/3600)/24). " dní"; Funkce floor() vrátí nejbližší menší celé číslo, než je v parametru. V podstatě vezme parametr a odstraní z něj desetinou část. Jestliže parametr je už celé číslo, funkce vrátí to samé číslo. Větvení v PHP Větvení je skupina příkazů, které rozhodují (porovnávají proměnné) a určují, jak se bude skript dál vyvíjet. Jsou to příkazy typu if, else, elseif a switch. Porovnávací operátory $a==$b $a má stejnou hodnotu jako $b $a!=$b $a má jinou hodnotu než $b $a>$b $a je větší než $b $a<$b $a je menší než $b $den="pátek"; if ($den=="středa") echo "Dnes je středa"; else echo "Dnes není středa, je $den";
Čtvrtek 8. prosince Program, který rozhodne, zda je číslo kladné, záporné nebo nula $a=-6; If ($a>0) echo "Číslo $a je kladné"; elseif ($a==0) echo "Číslo je nula"; else echo "Číslo $a je záporné"; Lepší by samozřejmě bylo zadávat číslo přes formulář, ale pro pochopení problému stačí měnit čísla přímo v kódu Prográmek na stránky, který pozdraví uživatele podle denní doby echo "Je právě ". date("g"). " hodin ". date("i"). " minut "; echo "<br><br>"; $minuty=(date("g")*60+date("i")); echo $minuty. "<br><br>"; If ($minuty<510) echo "Dobré ráno"; elseif ($minuty<710) echo "Pěkné dopoledne"; elseif ($minuty<740) echo "Příjemné poledne"; elseif ($minuty<1080) echo "Krásné odpoledne"; elseif ($minuty<1380) echo "Klidný večer"; else echo "Dobrou noc, sladké sny"; Čtvrtek 15. prosince Prověrka
Čtvrtek 5. ledna Příkaz include - vkládání částí kódu / skriptů z externího souboru Možností využití "include" je spousta, ale pro tyhle případy je důležité: to, co se opakuje na dvou a více stránkách, napíšeme jen jednou, uložíme zvlášť do souboru, a do všech stránek, kde se to má zobrazit, jen dáme php příkaz include, který načte a na dané místo vloží obsah onoho souboru. Když pak obsah toho externího souboru změníme, samozřejmě se na všechny stránky bude načítat aktuální verze, tj. včetně změny. Tu tedy stačí udělat jen jednou. index.php php include 'hlavicka.html'; include 'menu.html'; Čtvrtek 12. ledna Cykly v PHP Cykly se používají, chceme-li opakovat určitou činnost, několikráte za sebou, opakovaně provádět stejnou proceduru. Postupně ověřovat data, nebo generovat informace. V programování rozeznáváme tři typy cyklů: 1. cyklus s podmínkou na konci 2. cyklus s podmínkou na začátku 3. cyklus s předem daným počtem opakování
//cyklus s podmínkou na konci $x=1; do { echo($x. " "); $x=$x+1; } while ($x<25); //$x++ je totéž jak $x=$x+1 echo "<br>"; //cyklus s podmínkou na začátku $x=1; while ($x<25){ echo($x. " "); $x++; } echo "<br>"; //cyklus s daným počtem opakování for ($x=1; $x<=30;$x++){ echo($x. " "); } Čtvrtek 26. ledna Datové typy v PHP Integer Double String Array Object celé číslo desetinné číslo znakový řetězec pole objekt O typy proměnných se většinou nemusíme starat, protože se podle potřeby automaticky konvertují na vhodný typ.
Pole Pole je speciální datová struktura, ve které jedna proměnná může obsahovat několik hodnot. Tyto hodnoty jsou přístupné pomocí indexu. Index prvku pole se zapisuje do hranatých závorek: $a[0]= Jana ; $a[1]= Ivoš; $a[2]= Manka ; Prvky pole nemusí mít stejný datový typ $x[0]=2; $x[1]=3.14; $x[2]="matěj"; Jiný způsob zápisu pole $b= array(8, 12, 6, 7, 10) Generování náhodného prvku funkce rand $nahodne = rand (1, 25); //vybere náhodné číslo z intervalu 1 25 Funkce count spočítá počet prvků v poli echo Pole má. count($b). prvků ; Vypsání prvků pole pomocí cyklu s daným počtem opakování $pole = array("jana", "Dáša", "Zdena", "Josef", "Pepe", "Lukáš"); for ($i=0; $i<count($pole);$i++){ echo($pole[$i]. ", "); } Vypsání náhodného prvku z pole echo $pole[rand (0,Count($pole))]; Část kódu ze souboru murphy.php, který náhodně vygeneruje vždy jeden z tzv. Murphyho zákonů a zobrazí jej na webové stránce:
Soubor je do stránky vložen pomocí funkce include: include "murphy.php" Vytvoření stránky s počítadlem přístupů na stránku, není ošetřeno více načtení z jednoho počítače, to znamená, že při každé aktualizaci se počítadlo zvýší <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>stránka s počítadlem</title> </head> <body> $file = "pocet.inc"; //soubor do kterého se to ukládá $open_file = fopen ($file,'r+'); //otevře soubor pro čtení a zápis $pocet = fread ($open_file, '100("file")') + 1; //přičte k $open_file 1 rewind ($open_file); //nastavení na začátek souboru fwrite ($open_file, $pocet); //zapíše do souboru aktuální počet přístupů fclose ($open_file); //zavře soubor <h1>stránka s počítadlem</h1> <p>jste include $file;. návštěvník této stránky</p><br><br> Vložení data, kdy byla stránka naposledy aktualizována Poslední aktualizace stránky proběhla echo(strftime("%d/%m/%y", getlastmod())); </body> </html>