web fejlesztés iv

25
E L T E I n f o E L T E I n f o r m a t i k a r m a t i k a Web fejlesztés IV. Illés Zoltán ELTE TTK Informatika [email protected]

Upload: sarah

Post on 13-Jan-2016

29 views

Category:

Documents


1 download

DESCRIPTION

Web fejlesztés IV. Illés Zoltán ELTE TTK Informatika [email protected]. Ami eddig volt…. HTML interaktív elemek SSI, CGI jelentése,használata Kliens oldali nyelv Javascript Szerver oldali eszköz Shell script (SSI, CGI). SSI, CGI programeszközei. Tetszőleges programozási nyelv - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Web fejlesztés IV.

Illés Zoltán

ELTE TTK Informatika

[email protected]

Page 2: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Ami eddig volt…

• HTML interaktív elemek

• SSI, CGI jelentése,használata

• Kliens oldali nyelv– Javascript

• Szerver oldali eszköz– Shell script (SSI, CGI)

Page 3: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

SSI, CGI programeszközei

• Tetszőleges programozási nyelv

• Shell script

• PHP

• (Programozható Hypertext Preprocesszor)

Page 4: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

PHP

• http://www.php.net• Ingyenes• Aktuális verzió:

– 4.4.5– 5.2.1

• Linux disztribúciók része• RISC OS, SGI, Netware• Windows• PHP dokumentáció (magyarul is…)

Page 5: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

PHP Installálás

• Apache: (httpd.conf bejegyzések)– Addtype application/x-http-php .php– LoadModule php4_module libexec/libphp4.so– AddModule mod_php4.c

• Windows IIS– Phpx-installer.exe– IIS-Tulajdonságok-Home Dir. Fül-Configuration

• App. Mappings:• .php c:\php4\php.exe %s %s

Page 6: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

PHP használata

• Használati forma– SSI előfeldolgozó– CGI válasz generátor

• .php kiterjesztés• Nem kötelező a cgi-bin könyvtárba tenni• Nincs „főprogram”• <?php

– // php számára írt sorok• ?>

Page 7: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

PHP Jellemzői

• C stílusú utódnyelv• Interpretált• Kis-, nagybetű különböző• Utasítás lezáró: ; (pontosvessző)• Megjegyzés: // vagy /*….*/• Referencia használat• Objektumorientált

Page 8: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Típusok PHP-ban

• Skalár– Valós, egész, logikai, szöveg, objektum– $ jel használata: $a=25;– Logikai: $igaz=TRUE;– Minden nem 0, NULL, logikai igaz (mint C-ben)– $hexa=0xffff; // hexadecimális formátum– $s=„HF\n”; // string– „ és ‘ használat együtt: $i=”I’m a good boy…”

Page 9: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Tömbök PHP-ban I.

• Létrehozás– Explicit: $a[0]=„alma”; stb.– array() elemmel:

• $b=array(„fradi”,”UTE”,”MTK”);• $c=array(„alma”=>”jonatán”, „szilva”=>”ringló”,...)

• Hozzáad végéhez: $b[]=„ETO”;• Index 0-tól indul• Törlés: unset($b[1]);

– 1-es index definiálatlan, használata hibát ad– If (array_key_exists(1,$a) print(„van”); else

print(„nincs”);

Page 10: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Tömbök PHP-ban II.

• Valójában minden tömb asszociatív(hash)• Egy tömbelem bármilyen típusú lehet

– Többdimenziós, tömbök tömbje

• Teljes tömb kiírás: print_r($tomb);• Elemszám: count($tomb)• A string is tömb!

– $nev=„fradi”; print(strlen($nev)); print($a[2]);

Page 11: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Tömbök PHP-ban III.• array_push($vektor,”alma”,”körte”);

– A v tömb végére illeszti az elemeket.• $e=array_pop($vektor);

– A végéről levesz egy elemet• Többdimenziós tömbök

– Mint JavaScriptben, tömbök tömbje• Tömboperátorok

– $a + $b; //tömb egyesítés, mintegy unió!!– $a == $b; //egyenlő ha kulcs/értékek azonosak– $a === $b // mint előző, de még a sorrend is azonos– !=, !== nem egyenlő, nem azonos

Page 12: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Szöveg függvények

• $a=”almafa”; // sok str fv. van• print strlen($a); // 6• Is_string($a); // true• Chr(65); ord(„a”); //A, 97• print substr($a,2,3); //maf• split(„m”, $a);• Strtoupper, strtolower,trim• Stb…

Page 13: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Változók hatásköre

• Globális, ha függvényen kívül definiált

• Ez függvényen belül nem látszik automatikusan– global $a; // ekkor a $a külső látszik

• Lokális változó, függvényen belül

• Statikus változó, függvényen belül– static $a=0; // első híváskor inicializálás

Page 14: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Konstansok

• define(k,”Ez konstans”)– print(k);

• TRUE, FALSE, NULL• Konstans létezés: if (defined(k))

print(„van”);• PHP_VERSION, PHP_OS• __FILE__, __LINE__

Page 15: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Kifejezések, operátorok

• Mint C-ben, ~ minden kifejezés• and, or, xor (megmaradt && és ||)• Parancs helyettesítés operátor ``

– $adat=`ls –al`; // mint shell scriptben

• ., .= string operátorok– $a=„alma” . „fa”; //összefűzés

• Ha szükséges, automatikus konverzió– $b=„25 alma” + 4; // 29 lesz $b

• <<< heredoc operátor, és nem <<

Page 16: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Heredoc (<<<) operátor

• print <<<END• <p align=center><font size=5>Jelentkezési lap

rendszergazda továbbképzésre</font></p>• <form>• ….itt van a tartalom• </form>• <p>Kérem adja meg a jelentkezéshez szükséges

adatait!</p>• END;

Page 17: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Elágazások

• if (kif) ut; else ut; //mint C-ben– elseif // else utáni if– endif // nem kötelező

• switch, többirányú elágazás– case érték:… // érték szöveg is lehet!– break, default cimke– endswitch // ez is jó– Nem kötelező a break!

<?phpif ($a > $b) {   echo "a nagyobb, mint b";} else {   echo "a NEM nagyobb, mint b";}?>

<?phpswitch ($i) {case "alma":   echo "i most: alma";   break;case ”körte":   echo "i most: körte";   break;case ”barack":   echo "i most: barack";   break;}?>

Page 18: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Ciklusok

• while (kifejezés) utasítás;

• do { ….} while(feltétel); //amíg igaz

• for(kif1;kif2;kif3) utasítás;

• foreach(vektornév as értéknév) utasítás;

• foreach(vnév as kulcs=>érték) utasítás;– Végiglépked egy vektoron

Page 19: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Függvények PHP-ban

• function osszead($a, $b){ return ($a+$b); }

• Meghívás: print(osszead(5,6));• Referencia szerinti paraméter

– function novel(&$a) { $a++;}

• Lehet paraméternek kezdőértéket adni• Változószámú paraméter használható

– $db=func_num_args(); $i=func_get_arg(0-tól-db-ig)

• Összetett (több adat) visszaadás:– return array($a,$b,$c)

Page 20: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Osztályok

• Class kulcsszó• Egyszeres öröklés, extends kulcsszó• Adattag definíció: var $nev;• Konstruktor név azonos az osztály nevével• Példány definiálás: $elem= new valami();• Függvényhívás: $elem->fv();• Ösfüggvény hívás: Ős::fv(); parent::fv();

Page 21: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Kliens-Szerver kapcsolat

• HTTP környezeti változók megjelenése– $HTTP_SERVER_VARS vagy $_SERVER

asszociatív tömb– Példa: alma.php, alma.php?a=almafa– $_SERVER['PHP_SELF'] megadja a fájlunk

nevét, gyakran szerepel a form action paraméterében

Page 22: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Formok kezelése

• Form változó név php-s skalárként jelenik meg– Ha a php.ini-ben register_globals=on-ra van állítva

• Action paraméter: action• HTTP_GET_VARS, HTTP_POST_VARS

– Asszociatív tömb,a fentiekkel azonos a $_POST, $_GET– Irx-en mindkettő él.– Példa: masodfok.php

• <select name=elemek[] size=6 multiple>– A $elemek tömbben jelennek meg a kiválasztott listaboxelemek.– Több textmezőhöz is rendelhető azonos vektor formájú név

Page 23: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

File feltöltés I.

• $thefile – átmeneti változó, a file tartalma• $thefile_name – a file eredeti neve a küldő

gépen• $thefile_size – a file mérete• $thefile_type – a file MIME típusa• $thefile-t a script végén letörli!!!

– copy($thefile, file_név_a_szerveren);

• Ezek a globális változók az IRX-en nincsenek

Page 24: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

File feltöltés II.

• $_FILES tömb, két indexes• $_FILES[„nev1”][„name”], file név• $_FILES[„nev1”][„tmp_name”], ideiglenes file• $_FILES[„nev1”][„type”], állomány típus,

application/octet-stream• $_FILES[„nev1”][„size”], méret• $_FILES[„nev1”][„error”], hibakód• Másolás: copy($_FILES["nev1"]["tmp_name"],

"./sql/fradi.ka");• Példa: feltolt.php

Page 25: Web fejlesztés IV

E L T E I n f o r m a t i k aE L T E I n f o r m a t i k a

Köszönöm a figyelmet!

Illés Zoltán

Budapest, Pázmány Péter sétány 1/c

[email protected]