1 / 33

PHP

PHP. Jemný úvod do PHP. Mgr. Ján Guniš, KUI, 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

aleron
Download Presentation

PHP

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. PHP Jemný úvod do PHP Mgr. Ján Guniš, KUI, 2003 KUI Košice, 15. 5. 2003

  2. 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

  3. 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 PHP a ostatné jazyky KUI Košice, 15. 5. 2003

  4. 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 adresehttp://www.php.net/docs.php alebo na serveri rayman KUI Košice, 15. 5. 2003

  5. Č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

  6. 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 PHPextension_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 .phtmlAction 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

  7. Č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

  8. 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ú skriptyvytvorené 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

  9. 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 = onPHP kontroluje, či vlastník běžiaceho skriptu je vlastníkom souboru, s ktorým sa má manipulovaťsafe_mode_exec_dir = adresarumožň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

  10. Začíname • prípona súboru php, php3, phtml (podľa srm.conf) • vloženie skriptu 1: ale preferuje sa skôrhtml 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

  11. 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-234kniž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

  12. 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, booleanje globálna (na rozdiel od premenných) KUI Košice, 15. 5. 2003

  13. Premenné III, polia • reset (pole) – nastav ukazovateľ na začiatok poľacurrent(pole) – hodnota aktuálneho prvku poľanext(pole) – posuň na ďalší prvok poľaend(pole) – posunie ukazovateľ na koniec poľa a vráti hodnotukey(pole) – vráti index aktuálneho prvku poľacount(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

  14. 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

  15. 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; Vetvenie I: if KUI Košice, 15. 5. 2003

  16. switch (vyraz): case hodnota1: prikaz1; .. break; case hodnota2: prikaz2; .. 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 Vetvenie II: switch KUI Košice, 15. 5. 2003

  17. for (vyraz1; vyraz2; vyraz3): prikaz1; prikaz2; .. 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 Cyklus I: for Pr.: for ($i=1; $i<=10; $i++): echo $i . “<br>”; endfor; KUI Košice, 15. 5. 2003

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

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

  20. 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 Príkazy break a continue KUI Košice, 15. 5. 2003

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

  22. 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

  23. 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

  24. 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

  25. Funkcie IV • štandardné hodnoty parametrovfunction 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 1echo citac(); // výstup je 2 KUI Košice, 15. 5. 2003

  26. 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

  27. Formuláre I • <form action=”obslužný skript” method=POST(GET)> definícia formulára<form> • GET – dáta su pripojené za URLPOST – 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

  28. 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áraelse: .. //zobraz formulárendif; • 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

  29. Príklady I • phpinfofunkcia phpinfo vracia komplexné informácie o inštalácii PHP a o niektorých nastaveniach servera • hesloprí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_navjednoduchá 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

  30. Príklady II • pocitadlojednoduché počítadlo návštevnosti www stránky, celková, denná a priemerná denná návštevnosť • mazaniemazanie 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_toodoslanie 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

  31. Príklady III • anketakompletná aplikácia - anketa na www stránkujednoduchá práca s cookieslog súbory, informácie o návštevníkovia ešte niečo navyše  • downloadvšetky skripty KUI Košice, 15. 5. 2003

  32. 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

  33. Zdroje na i-nete • www.php.net (www.php.cz, www.php.sk)domovská stránka PHP • www.apache.orgdomovská stránka http servera Apache • www.builder.czdiskusia a články o PHP • www.nusphere.comPHPEd, 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/phpAlgoritmy s PHP, materiál pre študentov KUI Košice, 15. 5. 2003

More Related