PHP Jemný úvod do PHP Mgr. Ján Guniš, KUI, 2003

Slides:



Advertisements
Similar presentations
Ma.
Advertisements

MA. ME MI MO MU MÁ MÉ MÍ MÓ MŮ LA LE LI.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
PHP using MySQL Database for Web Development (part II)
Server-Side Application and Data Management IT IS 3105 (Spring 2010)
Požiadavky na hardvér a možnosti použitia jednotlivých OS Windows
Example Bullet Point Slide
Ing. Eva Koščová/ Informatika
Bakalárska práca Webová výuka programovania v C++ pomocou jednotkového testovania Školiteľ: František Gyárfáš Viliam Vakerman.
Inteligentné mapy Marek Doršic.
VOĽNE DOSTUPNÝ REFERENČNÝ MANAŽÉR
Informácie okolo nás Informácia Údaj
Prečo šimpanzy nevedia rozprávať?
Zálohovanie a archivácia
Operačné systémy Čo robí operačný systém ?
BEZPEČNOSŤ DATABÁZ Bezpečnosť informačných systémov
Geografický informačný systém
RIZIKÁ PRI REALIZOVANÍ PROJEKTU
MATLAB (1) - úvod do programovania vedeckých problémov
Programovanie geofyzikálnych úloh v prostredí MATLAB
Vývoj a druhy počítačov
Úvod do jazyka C Algoritmizácia úloh 4.
DATABÁZOVÉ JAZYKY.
Databázový systém pre malý a veľký podnik
Yulia Šurinová "There is always a better way; it should be found."
Programovací jazyk programovací jazyk Pascal Delphi
Makrá v PowerPointe Joshua Lajčiak.
Communicating over the Network
1. Úvod do operačného systému UNIX
Človek vo sfére peňazí ročník.
7. prednáška 3. november 2003.
Protokoly HTTP a FTP.
Mgr. Valentína Gunišová
Výučba cudzích jazykov
Informatika, I. ročník Gymnázium, Park mládeže 5, Košice
Vlastnosti kvantitatívnych dát
Ing. Róbert Chovanculiak, Ph.D. INESS
Šifrovanie Dešifrovanie
Ako manažovať smartfóny z cloudu TechDays East 2014
Metóda Konečných Prvkov vo výrobných technológiach
CSS - Cascading Style Sheets
Dvojrozmerné polia Kód ITMS projektu:
Lokálne príznaky vo farebných obrazoch
22. – OTVORENÝ PRÍSTUP
PRACOVNÉ PROSTREDIE PRI PRÁCI S POČÍTAČMI Z HĽADISKA ERGONÓMIE
Vysoko subjektívna prezentácia o používaní podcastov
Servio as a Service Service desk z Telekom cloudu
Dynamické webové stránky
Heuristické optimalizačné procesy
Heuristické optimalizačné procesy
REACH 2018 Nájdite svojich spoluregistrujúcich a pripravte sa na spoločnú registráciu.
Ing. Anita Sáreníková/ Cvičenia z aplikovanej informatiky
komercia vs. dokonalosť
Metodológia CVM— Client Value Method
4. Užívateľské prostredie UNIXu
Veľkosť trhu agentúrnych zamestnancov
De Bonových 6 klobúkov myslenia
Výnimky I, adresáre a súbory
Seminár č. 9 - osnova Metódy sieťového plánovania a riadenia:
Workshop DSpace 5, VŠB-TUO,
Ponúkame: poradenstvo technickú podporu - help desk školenia
Interaktívna kniha a e-learningový systém pre deti - Opera nehryzie
Neformálne ekonomické fórum 3. marec 2011
D Novinky v DSpace 6 Ivan Masár 6.
Využitie biomasy v environmentálnych biotechnológiách
...bzučanie miliónov plastických koliesok
Podpora adaptívneho WEB-u prostriedkami strojového učenia
PHP an introduction.
Redline Unibis™ Úspora až do 50% priestoru v rozvádzačoch
PHP By Prof. B.A.Khivsara Note: The material to prepare this presentation has been taken from internet and are generated only for students reference and.
Presentation transcript:

PHP Jemný úvod do PHP Mgr. Ján Guniš, KUI, 2003 KUI Košice, 15. 5. 2003

História PHP 1994 Rasmus Lerdorf, počítadlo prístupov na stránky v Perl-e, neskôr prepis do C rozšírenie pod názvom Personal Home Page Tools pridanie SQL príkazov, práca s formulármi - Professional Home Page/Form Interpreter 2.0 PHP 3.0 beží aj pod WIN32 a Macintosh PHP 4 (PHP hypertextový preprocesor), cca. 10x rýchlejší ako PHP 3.0 aktuálna verzia PHP 4.3.? KUI Košice, 15. 5. 2003

PHP a ostatné jazyky jazyky na strane servera CGI (Common Gateway interface) SSI (Server Side Includes) SSJS (Server Side JavaScript) ASP (Active Server Page) PHP jazyky na strane klienta Dynamické HTML JavaScript JavaApplet KUI Košice, 15. 5. 2003

O PHP ... voľne šíriteľný softvér download: http://www.php.net (Win32, UNIX, Macintosh) spúšťanie ako CGI skriptu zakompilovanie do jadra Apacha php je interpreter „infovekácke“ servre podporujú PHP manuál k PHP na adrese http://www.php.net/docs.php alebo na serveri rayman KUI Košice, 15. 5. 2003

Čo PHP vie? spracovanie dát z formulárov práca s cookies a http hlavičkami dynamicky generovať stránky podpora databáz (MySQL, MS SQL .., ODBC) práca s poštou čítanie a ukladanie dát na serveri syntax PHP je úspornejšia ako syntax ASP (tvrdia niektorí :-) .... KUI Košice, 15. 5. 2003

Inštalácia na WIN32 inštalácia sieťovej karty (protokol TCP/IP) inštalácia http servera Apache a PHP spojenie Apacha a PHP v php3.ini (php3.ini-dist) doplniť cestu k interpretru PHP extension_dir=c:\php a prekopírovať do c:\windows do srm.conf (apache) dopísať ScriptAlias /php3/ "C:/php/" AddType application/x-httpd-php3 .php3 .php .phtml Action application/x-httpd-php3 "/php3/php.exe" do httpd.conf" (apache) dopísať DocumentRoot "c:/moj web" DirectoryIndex index.htm naštartovať server a http://localhost/ KUI Košice, 15. 5. 2003

Čo potrebujeme? dobrá znalosť jazyka HTML textový editor (poznámkový blok, ..) http server (najlepšie Apache) s podporou PHP, alebo aspoň PHP ? základy nejakého skriptovacieho jazyka na strane klienta ? špecializovaný editor (PHPEd, ..) ? databázový server (MySQL, ..) KUI Košice, 15. 5. 2003

Bezpečnosť I (LINUX) PHP skripty bežia pod užívateľom pod akým beží Apache Apache: napr. užívateľ: wdata, skupina: wdata PHP skript: užívateľ: xyz, skupina: users práva PHP skriptov: - r w - - - - r - - práva súborov do ktorých PHP zapisuje: ak ich vytvorí užívateľ xyz: xyz, users, - r w - - - - r w - ak ich vytvorí PHP skript: wdata, wdata, - r w - - - - - - - práva priečinkov v ktorých sú skripty vytvorené xyz: d r w x - - - - - x (ak skript zapisuje: d r w x - - - - w x) vytvorené skriptom: d - - x - - - - - - (ak skript zapisuje: d - w x - - - - - -) KUI Košice, 15. 5. 2003

Bezpečnosť II (LINUX) povoľte len to, čo je minimálne nutné chráňte zdrojové súbory pred nepovolanými osobami skripty a súbory s citlivými dátami ukladajte s reg. príponou PHP prístupové mená a heslá v súboroch šifrujte safe_mode = on PHP kontroluje, či vlastník běžiaceho skriptu je vlastníkom souboru, s ktorým sa má manipulovať safe_mode_exec_dir = adresar umožňuje spúšťať systémové programy len z tohto priečinka open_basedir = adresar (open_basedir = .) všetky operácie so súbormi budú obmedzené na tento adresár disable_functions funkcia1, funkcia2, .. funkcie uvedené v tejto direktíve budú zakázané KUI Košice, 15. 5. 2003

Začíname prípona súboru php, php3, phtml (podľa srm.conf) vloženie skriptu 1: ale preferuje sa skôr html kód html kód <? php skript ?> <?php php skript ?> html kód html kód vloženie skriptu 2: html kód <script language=”php”> php skript </script> html kód komentár1: // kometár v riadku komentár2: /* komentár cez viac riadkov */ citlivosť na veľké a malé písmená len v názvoch premenných KUI Košice, 15. 5. 2003

Premenné I premenná: $meno (meno začína písmenom alebo _) netreba deklarovať (ak nie je „vývojarský“ mód) premenná sa automaticky konvertuje na potrebný typ integer: <-2 147 483 948, +2 147 483 647> 123, 0X2E (hex 0X), 033 (okta 0) double: od -1.7e308 do 1.7e308, najmenšie kladné: 3,4e-234 knižnica BC, väčšia presnosť string, zápis do úvodzoviek alebo apostrofov "retazec" escape sekvencia: \\ zpätná lomka, \n nový riadok, \r návrat vozíka, \t tabulátor, \" úvodzovky, \$ znak dolar array: $a=array(1,2,3); $x=array(array(1,2), $a[3]=4; array(3,4)); echo $x[1][0]; {3} objekt boolean: true, false (od verzie PHP4) KUI Košice, 15. 5. 2003

Premenné II a konštanty Práca s typom premennej: zistenie typu premennej: funkcie: GetType Is_Integer, Is_Double, Is_String, Is_Array, Is_Object, Is_Bool zmena typu premennej: SetType(premenna, "typ") Konštanty define (“meno_konštanty“, hodnota); meno za nezačína $ konštanta môže byť typu: integer, double, string, boolean je globálna (na rozdiel od premenných) KUI Košice, 15. 5. 2003

Premenné III, polia reset (pole) – nastav ukazovateľ na začiatok poľa current(pole) – hodnota aktuálneho prvku poľa next(pole) – posuň na ďalší prvok poľa end(pole) – posunie ukazovateľ na koniec poľa a vráti hodnotu key(pole) – vráti index aktuálneho prvku poľa count(pole) – vráti počet prvkov poľa Prechod poľom 1: for ($i=0; $i<count($x); $i++): echo $x[$i]; endfor; Prechod poľom 2: reset($x); while (current($x)): echo ”index: ” . key($x) . ” ”; echo ”hodnota: ” . current($x) . ”<br>”; next($x); endwhile; KUI Košice, 15. 5. 2003

Operátory matematické: + - * / %(zvyšok po delení) += -= *= /= %= ++$x --$x, $x++, $x-- (preinkrement, predekrement, postinkrement, postdekrement) bitové: & (logický súčin), | (logický súčet), ^ (nonekvivalencia), ~ (negácia) logické: $x je rovné 0, tak je false, inak je true == (je rovné), != (je rôzne), >, <, >=, <=, and, or, xor reťazcové: . (zreťazenie), .= (pripojenie) podmienený: vyraz1 ? vyraz2 : vyraz3 $x>$y ? $max=$x : $max=$y; KUI Košice, 15. 5. 2003

Vetvenie I: if if (podmienka) prikaz; if (podmienka): prikaz1; prikaz2; .. endif; if (podmienka): prikaz1; .. else: prikaz2; .. endif if (podmienka1): prikaz1; .. elseif (podmienka2): prikaz2; .. elseif (podmienka3): prikaz3; .. else: prikaz4; ... endif; KUI Košice, 15. 5. 2003

Vetvenie II: switch switch (vyraz): case hodnota1: prikaz1; .. break; default: prikaz3; ... endswitch; vyraz sa vyhodnotí potom sa testuje zhoda z hodnotou za case v prípade zhody sa vykoná všetko až do break, alebo do konca príkazu switch KUI Košice, 15. 5. 2003

Cyklus I: for for (vyraz1; vyraz2; vyraz3): prikaz1; prikaz2; .. endfor; Pr.: for ($i=1; $i<=10; $i++): echo $i . “<br>”; endfor; vyraz1 sa vyhodnotí na začiatku cyklu potom sa vyhodnotí vyraz2 a ak je výsledok true, vykoná sa telo cyklu na konci každého prechodu cyklom sa vyhodnotí vyraz3 pokiaľ je hodnota vyraz2 true, cyklus sa opakuje KUI Košice, 15. 5. 2003

Cyklus II: while while (podmienka): prikaz1; prikaz2; .. endwhile; while ($i <= 10): echo $i . “<br>”; $i++; endwhile; KUI Košice, 15. 5. 2003

Cyklus III: do-while do { prikaz1; prikaz2; .. } while (podmienka); echo $i . “<br>”; $i++; } while ($i <= 10); KUI Košice, 15. 5. 2003

Príkazy break a continue break (n) umožňuje okamžité ukončenie tela cyklu a vynorenie sa z n vnorených štruktúr continue (n) preskočí všetky príkazy v zostávajúcich častiach tiel n vnorených cyklov a začne vykonávať ďalšiu iteráciu KUI Košice, 15. 5. 2003

Príkazy require a include require ("subor") načítanie skriptu zo súboru ak je použitý v tele cyklu, skript sa načíta len pri prvom volaní include ("subor") načítanie skriptu zo súboru ak je použitý v tele cyklu, skript sa načíta príslušný počet krát KUI Košice, 15. 5. 2003

Funkcie I function meno (parameter1, paramater2, ..) { príkazová časť; return hodnota; } Pr. 1: Pr. 2: function pozdrav () function maximum ($x, $y) { { echo "Dobry den"; return $x>$y ? $x : $y; } } .. .. pozdrav(); echo maximum ($a, $b); KUI Košice, 15. 5. 2003

Funkcie II Lokálne a globálne premenné vo funkciách nie sú automaticky prístupné globálne premenné Pr. 1: Pr. 2: function zmen() function zmen() { { $a = 10; global $a; } $a = 10; .. } .. .. $a = 20; .. zmen(); $a = 20; echo $a; // výstup je 20 zmen(); echo $a; // výstup je 10 KUI Košice, 15. 5. 2003

Funkcie III parametre volané odkazom a hodnotou function zmen (&$a, $b) { $a=10; $b=10; } .. $x=20; $y=20; zmen($x,$y); echo $x . " " . $y; //výstup je 10 20 KUI Košice, 15. 5. 2003

Funkcie IV štandardné hodnoty parametrov function umocni($zaklad, $exponent=2) .. umocni($x); //to isté, ako umocni($x,2) umocni($x,3); statické premenné function citac() { static $pocet=0; $pocet++; return $pocet; } .. echo citac(); // výstup je 1 echo citac(); // výstup je 2 KUI Košice, 15. 5. 2003

Funkcie V Rekurzia Pr.: function faktorial($n) { return $n==0 ? 1 : $n * fak($n-1); } echo (faktorial(5)); // výsledok je 120 je možná aj nepriama rekurzia KUI Košice, 15. 5. 2003

Formuláre I <form action=”obslužný skript” method=POST(GET)> definícia formulára <form> GET – dáta su pripojené za URL POST – dáta v tele http požiadavky Dáta z formulárov sú automaticky prístupne v rovnomenných premenných <form action=”obsluha.php” method=POST> <intup type=”text” name=”meno”> <input type=”submit” value=”Odošli”> </form> .. {obsluha.php} echo $meno; KUI Košice, 15. 5. 2003

Formuláre II Užitočné môžu byť skryté polia polia formulárov. Slúžia na uchovávanie stavových informácií. <input type=”hidden” name=”info” value=”odoslal”> {obsluha.php} if ($info == ”odoslal”): .. //spracuj dáta s formulára else: .. //zobraz formulár endif; Znovuzobrazenie neúplne vyplneného formulára (položky, ktoré boli vyplnené netreba vyplňovať ešte raz) <intup type=”text” name=”meno” value=”<? echo $meno; ?>”> Spracovanie dát z formulárov z neznámou štruktúrou umožňujú asociatívne polia: $HTTP_GET_VARS $HTTP_POST_VARS KUI Košice, 15. 5. 2003

Príklady I phpinfo funkcia phpinfo vracia komplexné informácie o inštalácii PHP a o niektorých nastaveniach servera heslo prístup na stránku len po autorizácii užívateľa, možnosť ako vytvárať stránky pre skupiny ľudí (v praxi sa používa autorizácia aj na úrovni http servera) kniha_nav jednoduchá kniha návštev pre návštevníkov www stránok, jednotlivé príspevky sú zapisované do textového súboru KUI Košice, 15. 5. 2003

Príklady II pocitadlo jednoduché počítadlo návštevnosti www stránky, celková, denná a priemerná denná návštevnosť mazanie mazanie položiek v textovom súbore cez HTML formulár, v podstate to ide aj cez priame editovanie súboru v textovom editore (telnet na server), ale toto je pohodlnejšie, i keď nie vždy použiteľné mail_to odoslanie obsahu formulára www stránky formou emailu na zadanú adresu bez použitia klientského programu pre správu pošty (napr. Outlook Express), pre správnu funkčnosť skriptu je potrebné, zdrojový text uložiť v kódovaní ISO-8859-2 KUI Košice, 15. 5. 2003

Príklady III anketa kompletná aplikácia - anketa na www stránku jednoduchá práca s cookies log súbory, informácie o návštevníkovi a ešte niečo navyše  download všetky skripty KUI Košice, 15. 5. 2003

PHP a informatika SŠ - DOBRÁ znalosť HTML neexistuje žiaden debugger => ťažké ladenie programov je dobré, ak študenti už majú nejaký základ z programovania, napr.: Turbo Pascal => nie pre začiatočníkov skript v PHP generuje zápis HTML kódu => vyššia náročnosť nepoužiteľné pri 2 hodinovej dotácii informatiky + nová perspektívna technológia zaujímavá aj pre študentov možnosť prezentovať svoje programy na i-nete atraktívnejšie programy ako napr. v TP žiaci sa veľa naučia (sieť, sieťové OS, protokoly, bezpečnosť, databázy, ..) práca len s legálnym softvérom (LINUX, Apache, PHP, MySQL, text. editor) použiteľné pri zameraní gymnázium 7902 5 05 – INFORMATIKA univerzálnosť HTML kódu => multiplatformové aplikácie KUI Košice, 15. 5. 2003

Zdroje na i-nete www.php.net (www.php.cz, www.php.sk) domovská stránka PHP www.apache.org domovská stránka http servera Apache www.builder.cz diskusia a články o PHP www.nusphere.com PHPEd, editor umožňujúci písať a spúšťať (s php.exe) PHP skripty, verzia 1.75 je free www.gjar-po.sk/studium/informatika/php Algoritmy s PHP, materiál pre študentov KUI Košice, 15. 5. 2003