1 / 33

Aplikovaná informatika 03

Aplikovaná informatika 03. Aplikace výpočetní techniky Mgr. Milan Randák. Instalace a konfigurace. Pro tvoření a spouštění skriptů PHP na lokálním počítači je nutné nainstalovat: 1. Překladač (interpret) jazyka PHP 2. Software pro Web server – APACHE 3. Databázový systém – MySQL

robyn
Download Presentation

Aplikovaná informatika 03

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aplikovaná informatika 03 Aplikace výpočetní techniky Mgr. Milan Randák

  2. Instalace a konfigurace Pro tvoření a spouštění skriptů PHP na lokálním počítači je nutné nainstalovat: 1. Překladač (interpret) jazyka PHP 2. Software pro Web server – APACHE 3. Databázový systém – MySQL Pro zjednodušení lze nainstalovat vše dohromady jako balík PHP Triad, kde jsou vyřešené vzájemné vazby. Je vhodné upravit adresář pro ukládání souborů se skripty v konfiguračním souboru apache/conf/http.conf – parametr DocumentRoot obvykle c:/apache/htdocs/ Adresy: www.php.net nebo zrcadlo www.php.cz Pro psaní programů lze použít Notepad, AceHTML, Phped, HomeSite a další. Jakýkoliv soubor obsahující PHP skript • má příponu .php • je uložen v adresáři obvykle c:/apache/htdocs/ • před jeho spuštěním je nutné spustit apache.exe • spouští se v prohlížeči, URL je http://localhost/nazevsouboru.php Kontrolu správné instalace lze provést krátkým skriptem, který zobrazí informace o PHP: <?php PHPInfo(); ?>

  3. Syntaxe PHP Způsoby zápisu skriptů: 1. <?php 2. <scriptlanguage=”php”> příkazy příkazy ?> </script> - na velikosti písmen nezáleží, pokud nejsou v uvozovkách nebo apostrofech - psaní poznámek na jenom rádku //, více řádků /*…….*/ - příkazy se oddělují středníkem nebo stojí samostatně na řádku - lze používat příkazy HTML zapsané v uvozovkách nebo apostrofech v příkazu echo nebo lze skript kdekoliv ukončit, vložit kód HTML a vložit opět skript - řetězce lze uzavírat do apostrofů nebo uvozovek, rozdíl je v tom, že řetězce v apostrofech jsou doslovné, u textu v uvozovkách se názvy proměnných nahrazují jejich aktuálními hodnotami - znaky se speciálním významem začínají lomítkem - \”, \’, \$, \n – nový řádek - v příkazu echo lze použít řetězce typu HEREDOC – přiřazují text doslovně. Př. echo <<<HTXT text s příkazy HTXT; Pozn. - název textu HEREDOC musí začínat v 1.sloupci textu samostatně na řádku AceHTML nezná HEREDOC typ.

  4. Proměnné - nedeklarují se, typ proměnné se určí, když do ní přiřadíme hodnotu, automaticky se může konvertovat na jiný typ, existují funkce pro zjištění typu i přetypování proměnné - základní typy : integer - celé číslo 2 147 483 648 až 2 147 483 647 double - reálné číslo -1,7.10308 až +1,7.10308, nejmenší kladné 3,4.10 -324 string - řetězec v uvozovkách nebo apostrofech array – pole, počáteční index je 0 pokud se neurčí jinak object – objekt pokud je hodnota výrazu nenulová má současně hodnotu true, hodnotu false má číslo 0, prázdný řetězec, pole nebo objekt a ukazatel null - název proměnné začíná značkou $ např. $a, ukazatel na proměnnou začíná značkou & např. &$a

  5. Operátory • aritmetické: +, -, *, /, % - zbytek po celočíselném dělení • přiřazovací: =, +=, -=, *=, /=, %= • inkrementace: ++ • dekrementace: -- • relační: == rovnost, != nerovnost, >=, <=, >, < • shoda hodnoty a datového typu: === stejná hodnota i typ, !== stejná hodnota nebo stejný typ • logické: ! negace, &&neboandlogickýsoučin, ||neboorlogickýsoučet • podmíněný operator: podmínka?výraz1:výraz2 • spojovánířetězců: operator tečka. • operátorčárka,oddělujevýrazy – v hlavičcecyklu for • bitovéoperátory

  6. Pole indexy se automaticky číslují od nuly pokud počátečný index nenastavíme jinak pole může obsahovat současně prvky různých typů – heterogenní pole vícerozměrné pole vytváříme jako pole polí vytvoření pole: $apole[ ] = 1; $pole[ ] = 2; $pole[ ] = 3; - indexy se zvyšují automaticky $bpole[0] = 1; $pole[1] = 2; $pole[2] = 3; $cpole = array (1,2,3 ); $dpole = array (“leden”,1,2,3 ); $epole = array (2 =>1,2,3 ); - indexyzačínají od dvojky

  7. Pole $fpole = array (array (1,2,3 ), array (1,2,3 ), array (1,2,3 )) $gpole[2] [3] = 10; asociativní pole má index určenýřetězcem $clovek[ “jmeno”] = “Karel”; $clovek[ “prijm”] = “Novak”; funkce pro práci s poli: – count() – vracípočetprvků v poli current() – vrací aktuální hodnotu indexu next() – posune index nadalšíprvek v poli max(),min() – vracímaximální, minimálníprvek v poli sort() – setřídí prvky v pole implode($pole,“oddělovač“) –spojí prvky pole do jednoho řetězce, mezi jednotlivé prvky vloží oddělovač

  8. Struktury příkazů Příkazy se oddělují středníkem. Příkaz echo vypíše texty a hodnoty proměnných na stránku. Příkazy HTML napsané v apostrofech nebo uvozovkách provede Podmínky se píší do kulatých závorek, skupiny příkazů do složených závorek • podmiňovací příkaz a) neúplný if (podmínka) { příkazy } b) úplný if (podmínka) { příkazy } else { příkazy } c) vnořený if (podmínka) { příkazy } elseif (podmínka) { příkazy } else { příkazy }

  9. Struktury příkazů 2. vícenásobné větvení switch (výraz) { case hodnota výrazu1: příkazy; break; case hodnota výrazu2: příkazy; break; default: příkazy; - nepovinná část } provádí se příkazyvevětvi se stejnouhodnotoujakoumávýrazza switch dokud se nenarazína break (nepovinný) nebokonecpříkazuswitch

  10. Struktury příkazů 3. cyklus while while (podmínka) { příkazy } cyklus se provádí dokud platí podmínka, příkazy se nemusí provést ani jednou 4. cyklus do while do { příkazy } while (podmínka) cyklus se provádí dokud platí podmínka, příkazy se provedou alespoň jednou

  11. Struktury příkazů 5. cyklus for for (inicializace;podmínka;inkrementace) {příkazy;} for ($i=1;$i<10;$i++) {echo $i;} vypíše čísla 1 až 10 for ($i=1, ($s=0;$i<10;$i++,$s+=+$i) echo $i; echo $s; vypíše čísla 1 až 10 a nakonec jejich součet cyklus se provádí dokud platí podmínka

  12. Struktury příkazů 6. cyklus foreach používá se při procházení všemi prvky pole foreach ($pole as $hodnota) {příkazy;} – odkazpouzenaprvek pole foreach ($pole as $index =>$hodnota) {příkazy;} - odkaznaprvek pole ijeho index 7. přerušenícyklu a) break – úplnéukončenícyklu b) continue – ukončíaktuálníprůchodcyklu a vrátí se najehozačátek, cykluspokračuje c) break počet; continue počet; - opustíněkolikcyklůnajednou

  13. Struktury příkazů 8. příkazy pro vkládánísouborů a) require “soubor.php” – vložísoubor, když ho nenajde, fatálníchyba b) include “soubor.php” – vloží soubor, když ho nenajde vypíše zprávu a pokračuje dál c) readfile (“text.txt”) – vložení textu ze souboru pokud je uveden pouze název volaného souboru, hledá se ve stejném adresáři, ve kterém je uložen volající soubor - include “soubor.php”, odkaz z na soubor v podadresáři adresáře volající stránky - include“./soubor.php”, odkaz z kořenového adresáře - include “/soubor.php”

  14. Funkce - deklarace funkce - deklaruje se kdekoliv před prvním voláním funkce, kulaté závorky u názvu jsou povinné i když funkce nemá parametry function NAZEV (formální parametry) { příkazy; return hodnota; - nepovinné } - volánífunkce NAZEV(skutečné parametry); - funkci lze volat i s menším počtem parametrů něž má uvedeno v deklaraci - funkci lze nadeklarovat se standardní hodnotou parametru - funkce automaticky používají lokální proměnné, když chceme pracovat s globální proměnnou, máme možnost: a) definovat ji jako globální uvnitř funce – global $proměnná; b) použít pole globálních proměnných $GLOBALS[“proměnná”] c) použít parametr nahrazovaný odkazem v hlavičce deklarace funkce (ukazatel na proměnnou – označen &) - funkce můžou používat statické proměnné označené static, přiřadí se jim hodnota pouze při prvním volání funkce

  15. Formuláře Jsou jednou z možností jak může komunikovat uživatel (stránka HTML ) se serverem kde jsou stránky uloženy.

  16. Zpracování formuláře v PHP Atribut action v příkazu HTML <form> musí odkazovat na skript v php pro jeho zpracování. Action se provede jako odezva na událost onsubmit.Tato událost nastane např. při zmáčknutí tlačítka typu submit. Pokud je skript i formulář v jednom souboru, lze pro zpracování volat proměnnou PHP_SELF Př. action = “zpracuj.php” Pokud je skript i formulář v jednom souboru, voláme pro zpracování stejnou HTML stránku jejíž adresa je vproměnné PHP_SELF Př. action = “<?phpPHP_SELF ?>“ Atribut methodlze nastavit na get - data z formuláře jsou předávaná přímo v URL a jsou v poli $_GET post - data z formuláře jsou předávaná v hlavičce http požadavku a jsou v poli $_POST

  17. Přístup k datům z formuláře • $jmeno_prvku_formuláře – nevhodné z hlediska bezpečnosti, v souboru php.ini nastavit parametr register_globals=On • $_GET [“jmeno_prvku_formuláře“]– odeslané metodou get • $_POST [[“jmeno_prvku_formuláře“]] – odeslané metodou post • $GLOBALS[“jmeno_prvku_formuláře“] - pole globálních proměnných V proměnných se přenášejí hodnoty parametru value u příslušných prvků formuláře V proměnné $REMOTE_ADDR je IP adresa počítače, který vyslal požadavek

  18. Práce se soubory Informace lze na serveru ukládat do souborů nebo databází. Scripty mohou pracovat se soubory jak celky (kopírování, mazání) nebo s daty které obsahují (čtení, zápis) a)manipulace s celými soubory file_exists (“soubor.dat”) – vrací true, když soubor existuje copy (“zdroj.dat”,”cil.dat”) – kopíruje soubor rename (“starejmeno.dat”,”novejmeno.dat”)– přejmenuje soubor unlink(“soubor.dat”) – smaže soubor V případě, že se příkazy provedou, vrací hodnotu true

  19. Práce se soubory b) manipulace s obsahem souboru - otevření souboru $fp=fopen(“zdroj.dat”, režim) – otevře soubor s log. jménem $fp v uvedeném režimu režimy: r – čtení, r+ - čtení i zápis, w - zápis, w+ - zápis i čtení, a – zápis na konec souboru, a+ - zápis na konec souboru i čtení - čtení ze souboru $znak = fgetc($fp) – načte znak ze souboru $retezec = fread($fp, 1024) – načte určenou velikost bloku dat do řetězce

  20. Práce se soubory $radek = fgets($fp, 4096) – načte řádek do řetězce pokud není delší než je uvedeno $pole = explode(”oddělovač”,$radek ) – rozdělí řádek na řetězce podle zadaného oddělovače řetězců a uloží je do pole $pole = file($fp) – načte celý soubor do pole – každý řádek je prvek pole filesize($fp) – vrací velikost souboru fpassthru($fp) – vypíše obsah souboru na výstup - zápis do souboru fwrite($fp, řetězec, délka pokud se nezapisuje celý) – zápis řetězce fputs($fp, znak) - zápis řetězce práce s ukazatelem rewind($fp) – nastaví ukazatel na začátek souboru ftell($fp) – vrací aktuální pozici ukazatela fseek($fp, pozice) – nastaví ukazatel na uvedenou pozici, začátek souboru je 0 feof($fp) – vrací true, když je ukazatel na konci souboru - uzavření souboru fclose($fp)

  21. Protokol HTTP Pro komunikaci mezi prohlížečem a serverem se používá protokol HTTP. Prohlížeč pošle na server požadavek ve formátu: metoda, hlavičky, prázdná řádka Metody jsou: GET – získání dokumentu ze serveru POST – odeslání dat z formuláře, za prázdnou řádkou jsou data z formuláře HEAD – zaslání pouze hlaviček PUT – uložení stránky na serveru DELETE – odstranění stránky ze serveru TRACE, CONNECT, OPTIONS – analýza způsobu připojení Hlavička slouží pro přenos doplňujících informací, je ve tvaru jméno_hlavičky : hodnota Povinná je pouze hlavička je Host:www.server.cz Server odešle odpověď ve formátu: protokol, stavový kód, stavové hlášení, hlavičky, prázdná řádka, obsah odpovědi

  22. Práce s hlavičkami v PHP V PHP lze číst hlavičky, které odeslal prohlížeč, nebo vytvářet hlavičky, které se posílají serveru. V tomto případě je musíme do skriptu vložit před jakýmkoliv výstupem na stránku, nesmí předcházet ani příkaz HTML <head> </head>. Hlavičky se vkládají funkcí Header Header(“název hlavičky : hodnota”) Př. Header(“Content -type : image/gif”) – skript generuje obrázek Header(“Location : http://www.jaroska.cz”) – skript nahraje uvedenou stránku

  23. Práce s grafikou v PHP Pro použití grafických funkcí je nutné v souboru php.ini smazat středník před řádkem extension=php_gd.dll Postup: 1.Určíme obsah stránky jako obrázek header("Content-type: image/png"); 2. Vytvoříme prázdný obrázek – zadáme rozměr v pixelech $img = imagecreate(200, 200); nebo vytvoříme obrázek načtením ze souboru $img = imagecreatefrompng(“název souboru“); 3. Pro vložení textu a kreseb použijeme funkce z manuálu např. $white = imagecolorallocate($img, 255, 255, 255); nastavení barev $black = imagecolorallocate($img, 0, 0, 0); imagearc($img, 100, 100, 150, 150, 0, 360, $black); nakreslení kružnice 4. Nakreslený obrázek pošleme prohlížeči imagepng($img); 5. Uvolníme paměť imagedestroy($img);

  24. Předávání dat do jiných stránek a) v adrese URL URL stránky?parametr=hodnota&parametr=hodnota http://localhost/test.php?a=1&b=’ahoj‘ proměnné následují za znakem ? a jsou oddělené znakem & b) pomocí funkce Header Header(“Location : URL stránky?parametr=hodnota”) Header(“Location : login.php?back=$PHP_SELF”) – návrat z přihlašovací stránky na původní c) pomocí odkazu (hyperlink) <a href=”soubor.php?a=10&amp;b=’ahoj’></a> d) pomocí formuláře <formaction=“soubor.php“ method=“GET/POST“> … </form> přístup k datům $_GET[$jmeno_prvku_formuláře] nebo $_POST[$jmeno_prvku_formuláře]

  25. Proměnné SESSION http je bezstavový protokol – každý požadavek prohlížeče na server je nezávislý na jiném požadavku, po obsluze požadavku se spojení zruší. Pro udržení spojení – uložení informací o něm (stavové aplikace) lze použít proměnné session nebo cookies. Postup: a) zahájení volání - na přihlašovací stránku vložíme session_start(); vytvoří se identifikátor spojení 32-místné číslo, které identifikuje volání a uloží se na serveru b) proměnné které charakterizují spojení ukládáme do superglobálního pole $_SESSION Př. <?php session_start(); $_SESSION[“username“] = … ; ?>

  26. Proměnné SESSION c) na další stránky vložíme přesměrování na přihlašovací stránku, aby jsme zajistili přístup na stránky pouze z přihlašovací stránky Př. <?php if (!$_SESSION[“username“] ) Header(“Location : login.php?back=$PHP_SELF”); else { pokračování skriptu } ?> d) ukončení volání – funkce session_unset() nebo session_destroy(). Pro odhlášení také stačí zavřít okno prohlížeče Př. <?php session_unset ($_SESSION[“username“] ); if (!$_SESSION[“username“] ) echo “odhášen” ?>

  27. Cookies Jsou to řetězce znaků, které lze posílat mezi serverem a prohlížečem v rámci hlavičky HTTP. Uchovávají se v textových souborech na lokálním počítači a) uložení cookies– možnosti: SetCookie(nazev,hodnota, doba platnosti); Header(“Set-Cookienazev = hodnota; expires = doba platnosti”); Když se zadá pouze název, je cookies smazáno, když se nezadá doba platnosti je platné pouze pro dané spojení, doba platnosti se zadává ve vteřinách, které se přičtou k aktuálnímu času získanému funkcí time() Př. SetCookie(“hlasoval”,“ano“, time()+3600*24*365); - platí 1 rok a) čtení cookies- z pole $_COOKIES Př. if ($_COOKIES[“hlasoval”]) {echo “nelze hlasovat vicekrat“;}

  28. Použití databází v PHP Informace můžou být uložené na serveru v souborech nebo databázích. Databází rozumíme data a programy pro práci s nimi. Principy práce PHP s různými databázemi jsou velmi podobné. PHP pro spolupráci s databázemi používá funkce jejichž název začíná zkratkou použité databáze např. MySQL_..., ODBC_... atd. Velmi často se používá databáze MySQL . Je nutné spustit mysql.exe a WinMySQLadmin.exe.

  29. Základní příkazy MySQL 1 1) Vytvoření databáze - součástí instalace MySQL je WinMySQLadmin.exe kde vytvoříme databázi pomocí nabídky - v editoru mysql.exe příkazem CREATE DATABASE nazevdatab; 2) Otevření databáze USE nazevdatab; 3) Vytvoření struktury tabulky Data jsou uložena v tabulkách řádek – věta obsahuje všechny informace o záznamu v tabulce, sloupec – pole je stejný údaj v každé větě. Primární klíč je pole jehož hodnota je v dané tabulce jedinečná, tj. neexistují dvě věty, které mají stejnou hodnotu v tomto poli. Při vytváření tabulky se nejdříve navrhne její struktura tj. názvy polí a typ údajů v nich uložen, primární klíč – hodnota určena při definici primarykey příp. auto_increment, když ji vytváří procesor automaticky. Typy polí – INTEGER, FLOAT, DATE, CHAR [délka] – řetězec pevné délky, VACHAR [maxdélka] - řetězec libovolné délky menší než maxdélka, IMAGE, BLOB CREATE TABLE nazevtab ( 1.pole typpole1, 2.pole typpole2, 3.pole typpole3, …);

  30. Základní příkazy MySQL 4)Vkládání záznamů (vět) do tabulky INSERT INTO nazevtab ( seznam polí) VALUES (seznam hodnot), (seznam hodnot), …; - vkládají se hodnoty do vyjmenovaných polí INSERT INTO nazevtab VALUES(seznam hodnot), (seznam hodnot), …;- vkládají se hodnoty do všech polí v pořadí jak jsou nadeklarované, nic nelze vynechat 5)Změna struktury tabulky - přidání pole na konec věty, na začátek, za konkrétní pole ALTER TABLE nazevtab ADD nazevpoletyppole; na konec věty ALTER TABLE nazevtab ADD nazevpoletyppole FIRST/AFTER nazevpole; - smazání pole ALTER TABLE nazevtab DROP nazevpole; - změna definice pole ALTER TABLE nazevtab MODIFY nazevpolenovytyppole;

  31. Základní příkazy MySQL 6) Výběr a zobrazení záznamů SELECT seznam polí FROM seznam tabulek WHERE podmínka ORDERED BY uspořádání podle pole; lze použít i další funkce – SUM, MAX, … 7) Aktualizace záznamů UPDATE nazevtab SET nazevpole=hodnota WHERE podmínka; 8) Mazání záznamů DELETE FROM nazevtab; - smaže všechny záznamy DELETE FROM nazevtab WHERE podmínka; - smaže záznamy, které splňují podmínku 9) Mazání databáze a tabulky DROP DATABASE nazevdatab; DROP TABLE nazevtab;

  32. Použití MySQL v PHP 1) Připojení k serveru MySQL $spojeni=MySQL_Connect(server,uživatel,heslo); nebo stačí $spojeni=MySQL_Connect(“localhost“); v proměnné $spojeni je číslo, které identifikuje připojení k serveru 2) Výběr databáze MySQL_Select_DB (nazevdatab); 3) Příkazy pro práci se záznamy $vysledek=MySQL_Query(“příkaz MySQL“, $spojeni); nebo stačí $vysledek=MySQL_Query(“příkaz MySQL“); když pracujeme s jednou databází v proměnné $vysledek je číslo, které identifikuje výsledek, můžeme se na něj odvolávat u dalších funkcí počet záznamů ve výsledku vrací funkce MySQL_Num_Rows($vysledek)

  33. Použití MySQLv PHP přístup k jednotlivým záznamům poskytuje funkce MySQL_Fetch_Array(($vysledek) – vrací jeden řádek tabulky uložený do asociativního pole řetězců, prázdný řetězec má hodnotu false Př. výpis záznamů tabulky while ($zaznam=MySQL_ Fetch_Array($vysledek)) { foreach ($zaznam as $hodnota) echo $hodnota; echo “<br />”; } 4) Ukončenípřipojení MySQL_Close($spojeni);

More Related