Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "PHP Jemný úvod do PHP Mgr. Ján Guniš, KUI, 2003"— Presentation transcript:

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

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,

3 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,

4 O PHP ... voľne šíriteľný softvér
download: (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 alebo na serveri rayman KUI Košice,

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,

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 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 KUI Košice,

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,

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ú 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,

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 = 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,

10 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,

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: < , > 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,

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, boolean je globálna (na rozdiel od premenných) KUI Košice,

13 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,

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 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,

16 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,

17 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,

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

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

20 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,

21 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,

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,

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,

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,

25 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,

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,

27 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,

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á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,

29 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,

30 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 u 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 KUI Košice,

31 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,

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 – INFORMATIKA univerzálnosť HTML kódu => multiplatformové aplikácie KUI Košice,

33 Zdroje na i-nete ( domovská stránka PHP domovská stránka http servera Apache diskusia a články o PHP PHPEd, editor umožňujúci písať a spúšťať (s php.exe) PHP skripty, verzia 1.75 je free Algoritmy s PHP, materiál pre študentov KUI Košice,


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

Similar presentations


Ads by Google