WEBFEJLESZTÉS 2. ADATTÁROLÁS, MUNKAMENET- KEZELÉS, AJAX

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "WEBFEJLESZTÉS 2. ADATTÁROLÁS, MUNKAMENET- KEZELÉS, AJAX"

Átírás

1 WEBFEJLESZTÉS 2. ADATTÁROLÁS, MUNKAMENET- KEZELÉS, AJAX Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, Tel: (1) /1816

2 2 Ismétlés

3 Ismétlés 3 Dinamikus szerveroldali webprogramozás: program (PHP) állítja elő a tartalmat (HTML) Input kliens: link, űrlap szerver: CGI program: környezeti változók standard input Szerver Kliens PHP

4 Ismétlés 4 PHP linkben? után $_GET tömb űrlap get $_GET tömb űrlap post $_POST Űrlapfeldolgozás Adatok (nincsen: $_POST, $_GET, HTML) Beolvasás, ellenőrzés ($_POST, $_GET) Kimenet (HTML)

5 Adatok tárolása 5 Szükséges input output Hogyan? memória (nem jó, külön kérések vannak) fájl adatbázis

6 6 Fájlkezelés PHP-ban

7 Fájlműveletek PHP-ban 7 PHP-ban van lehetőség fájlok használatára (írás, olvasás, stb) Mint a legtöbb programozási nyelvben Csak a szerver helyi fájljai érhetők el Sokféle nyelvi lehetőség Tipikus folyamat megnyitás feldolgozás bezárás

8 Általános fájlműveletek 8 $f = fopen($fájlnév, $mód) fájl vagy URL megnyitása $f: logikai fájlkezelő $mód határozza a megnyitás módját r (csak olvasás) r+ (olvasás, írás) w (csak írás, üres fájl) w+ (olvasás, írás, üres fájl) a (hozzáfűzés) a+ (hozzáfűzés, olvasás) x (csak írás, üres fájl, ha létezik a fájl, akkor hiba) x+ (olvasás, írás, üres fájl, ha létezik, akkor hiba) c (csak írás, ha létezik, akkor elejére áll) c+ (írás, olvasás, ha létezik, elejére áll)

9 Általános fájlműveletek 9 feof($f) fájl vége? Beolvasás fread($f, $hossz) $hossz byte beolvasása fscanf($f, $formátum) formátum szerinti beolv. fgets($f[, $hossz]) sor beolvasása fclose($f) fájl bezárása Kiírás fwrite($f, $s) $s kiírása fputs($f, $s) ld. fwrite()

10 Példa filmcímek beolvasása 10 Cél: filmcímeket táblázatban kilistázni Kimenet <!doctype html> <html> <head> <meta charset="utf-8"> <title>fájl</title> </head> <body> <table border="1"> <?php foreach ($filmek as $film) :?> <tr> <td><?php echo $film;?></td> </tr> <?php endforeach;?> </table> </body> </html>

11 Példa filmcímek beolvasása 11 A hobbit A Gyűrűk Ura Út a vadonba Passió $filmek = array(); $f = fopen('lista.txt', 'r'); while (!feof($f)) { $sor = fgets($f); $filmek[] = $sor; fclose($f);

12 Példa filmcímek beolvasása 12 Javítandó Új sor karakterek a sor végén trim($s) Üres sor a fájl végén ellenőrzés $filmek = array(); $f = fopen('lista.txt', 'r'); while (!feof($f)) { $sor = trim(fgets($f)); if ($sor!= '') { $filmek[] = $sor; fclose($f);

13 Hibaellenőrzés 13 A fájlműveletek hamis értékkel térnek vissza hiba esetén általában hamis érték ellenőrzése $filmek = array(); $f = fopen('lista_.txt', 'r'); if ($f) { while (!feof($f)) { $sor = trim(fgets($f)); if ($sor!= '') { $filmek[] = $sor; fclose($f);

14 Hibaellenőrzés 14 Hibaüzenet kiírását operátorral nyomhatjuk el $filmek = array(); $f 'r'); if ($f) { while (!feof($f)) { $sor = trim(fgets($f)); if ($sor!= '') { $filmek[] = $sor; fclose($f);

15 Magasabb szintű fájlműveletek 15 Beolvasás file($fájlnév[, módosítók]) fájl soronként beolvas egy tömbbe file_get_contents($fájlnév) egész fájlt szövegként beolvassa readfile($fájlnév) A fájlt a kimenetre írja pl. képek kiírása fpassthru($f) Megnyitott fájl maradék részét a kimenetre írja pl. képek kiírása

16 Példa file() használatával 16 Új sor karakterek és üres sor nélkül $filmek = file('lista.txt', FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES); Hibaellenőrzéssel $filmek FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES) or die('nincs meg a fájl'); vagy $filmek FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES); if (!$filmek) { $filmek = array();

17 Példa file_get_contents() 17 Beolvasni, feldarabolni //$s szövegbe beolvasni $s = file_get_contents('lista.txt'); //feldarabolni új sor szerint $filmek = explode("\n", $s); //utolsó üres elemet kivenni array_pop($filmek); Hibaellenőrzés (hasonló a file()-hoz) //$s szövegbe beolvasni $s or die('nincs meg a fájl'); //feldarabolni új sor szerint $filmek = explode("\n", $s); //utolsó üres elemet kivenni array_pop($filmek);

18 Példa tömb kiírása listába 18 Nyitás módja: w, a, x Konstans definiálása Hibaellenőrzés Írási jog az adott könyvtárra Vuk Lolka és Bolka Macskafogó Kisvakond és barátai $filmek = array( 'Vuk', 'Lolka és Bolka', 'Macskafogó', 'Kisvakond és barátai', ); define('sorveg', "\n"); $f 'w') or die('hiba!'); if ($f) { foreach ($filmek as $film) { fputs($f, $film. SORVEG); fclose($f);

19 Példa új sor hozzáfűzése 19 Hozzáfűzésre megnyitás Egy sor kiírása $uj_film = 'Hupikék törpikék'; define('sorveg', "\n"); $f 'a') or die('hiba!'); if ($f) { fputs($f, $uj_film. SORVEG); fclose($f); Vuk Lolka és Bolka Macskafogó Kisvakond és barátai Hupikék törpikék

20 Magasabb szintű fájlműveletek 20 Kiírás file_put_contents($fájlnév, $s) Szöveget a fájlba írja $filmek = array( 'Vuk', 'Lolka és Bolka', 'Macskafogó', 'Kisvakond és barátai', ); define('sorveg', "\n"); //Elemek összefűzése $s = implode(sorveg, $filmek). SORVEG; $siker $s);

21 Konkurens fájlhasználat 21 Ha egyszerre többen hívják meg a szkriptet konkurens használat flock($f, $op) $op LOCK_SH (olvasáshoz) LOCK_EX (íráshoz) LOCK_UN (kioldáshoz) fflush($f) define('sorveg', "\n"); $f 'w') or die('hiba!'); if ($f) { if (flock($f, LOCK_EX)) { foreach ($filmek as $film) { fputs($f, $film. SORVEG); flock($f, LOCK_UN); fclose($f); fájlpuffer ürítése

22 Konkurens fájlhasználat 22 Olvasáshoz is érdemes lockolni a fájlt, hogy közben ne kezdődhessen el egy írási folyamat. $filmek = array(); $f 'r'); if ($f) { if (flock($f, LOCK_SH)) { while (!feof($f)) { $sor = trim(fgets($f)); if ($sor!= '') { $filmek[] = $sor; flock($f, LOCK_UN); fclose($f);

23 URL-ek olvasása 23 A fájlműveletek többsége nemcsak fájlt, hanem URL-t is képes olvasni (általában folyamokat) PHP-ban fel tudunk dolgozni más oldalakat Egy egyszerű oldal megjelenítése: $s = file_get_contents(' echo $s;

24 További fájlműveletek 24 mkdir($útvonal) könyvtár létrehozása rmdir($könyvtárnév) könyvtár törlése copy($forrás, $cél) másolás rename($mit, $mire) átnevezés, mozgatás unlink($fájlnév) törlés is_dir($fájlnév) is_file($fájlnév) is_readable($fájlnév) is_writable($fájlnév) is_link($fájlnév) is_executable($fájlnév)

25 További fájlműveletek 25 basename($útvonal) fájlnevet adja vissza chown($fájl, $user) chmod($fájl, $mód) chgrp($fájl, $group) stat($fájl) fájl adatai tömbben fseek($f, $offset) fájlmutató mozgatása

26 Összefoglalás 26 Alacsony és magas szintű fájlműveletek Beolvasást és a kiírást meghatározza: a fájl szerkezete; vagy az adat szerkezete Továbblépés adatszerkezetek

27 27 Adatszerkezetek és sorosításuk

28 Adatszerkezetek 28 //Rekord $rekord = array( 'mezo1' => 'ertek1', 'mezo2' => 'ertek2', 'mezo3' => 'ertek3', ); //Tömb $indtomb = array( 'ertek1', 'ertek2', 'ertek3', ); //Rekordok tömbje $rektomb = array( array( 'mezo1' => 'ertek1', 'mezo2' => 'ertek2', ), array( 'mezo1' => 'ertek1', 'mezo2' => 'ertek2', ), array( 'mezo1' => 'ertek1', 'mezo2' => 'ertek2', ), );

29 29 Példa Rekordok tömbje cím rendező év szereplők $filmek = array( array( 'cim' => 'Passió', 'rendezo' => 'Mel Gibson', 'ev' => '2004', 'szereplok'=> array( 'Jim Caviezel', 'Maia Morgenstern', 'Christo Jivkov', ), ), array( 'cim' => 'Pio atya - A csodák embere', 'rendezo' => 'Carlo Carlei', 'ev' => '2000', 'szereplok'=> array( 'Sergio Castellitto', 'Sergio Albelli', ), ), );

30 Példa feldolgozása 30 Nehézségek, kérdések Milyen legyen a fájl szerkezete? egy rekord egy sor? több sor (behúzásokkal) Feldolgozó algoritmushoz már nem használhatók a kényelmes függvények soronként, rekordonként kell feldolgozni megoldható, de sok idő

31 Sorosítás 31 Sorosítás egy adatszerkezet visszaalakítható szöveges megfelelője. Tároláshoz, átküldéshez szokták használni Sorosító függvények serialize($érték) szöveg unserialize($szöveg) érték json_encode($érték) szöveg json_decode($szöveg) érték

32 Serialize, unserialize 32 $s = serialize($filmek); echo $s; //a:2:{i:0;a:4:{s:3:"cim";s:7:" Passió";s:7:"rendezo";s:10:"Mel Gibson";s:2:"ev";s:4:"2004";s:9 :"szereplok";a:3:{i:0;s:12:"jim Caviezel";i:1;s:16:"Maia Morgenstern";i:2;s:14:"Christo Jivkov";i:1;a:4:{s:3:"cim";s: 27:"Pio atya - A csodák embere";s:7:"rendezo";s:12:"car lo Carlei";s:2:"ev";s:4:"2000";s:9 :"szereplok";a:2:{i:0;s:18:"ser gio Castellitto";i:1;s:14:"Sergio Albelli"; $filmek2 = unserialize($s); print_r($filmek2); /*Array ( [0] => Array ( [cim] => Passió [rendezo] => Mel Gibson [ev] => 2004 [szereplok] => Array ( [0] => Jim Caviezel [1] => Maia Morgenstern [2] => Christo Jivkov ) )*/ ) [1] => Array ( [cim] => Pio atya - A csodák embere [rendezo] => Carlo Carlei [ev] => 2000 [szereplok] => Array ( [0] => Sergio Castellitto [1] => Sergio Albelli ) )

33 33 json_encode $s = json_encode($filmek); echo $s; //[{"cim":"passi\u00f3","rendez o":"mel Gibson","ev":"2004","szereplok" :["Jim Caviezel","Maia Morgenstern","Christo Jivkov"],{"cim":"Pio atya - A csod\u00e1k embere","rendezo":"carlo Carlei","ev":"2000","szereplok" :["Sergio Castellitto","Sergio Albelli"]] /* [ { "cim":"passi\u00f3", "rendezo":"mel Gibson", "ev":"2004", "szereplok":[ "Jim Caviezel", "Maia Morgenstern", "Christo Jivkov" ], { "cim":"pio atya - A csod\u00e1k embere", "rendezo":"carlo Carlei", "ev":"2000", "szereplok":[ "Sergio Castellitto", "Sergio Albelli" ] ] */

34 json_decode 34 $filmek3 = json_decode($s, true); print_r($filmek3); /*Array ( [0] => Array ( [cim] => Passió [rendezo] => Mel Gibson [ev] => 2004 [szereplok] => Array ( [0] => Jim Caviezel [1] => Maia Morgenstern [2] => Christo Jivkov ) ) [1] => Array ( [cim] => Pio atya - A csodák embere [rendezo] => Carlo Carlei [ev] => 2000 [szereplok] => Array ( [0] => Sergio Castellitto [1] => Sergio Albelli ) )*/ )

35 Fájl és sorosítás 35 Két segédfüggvény Betöltés Mentés Akármilyen adatszerkezetre működik function fajlbol_betolt($fajlnev) { $s = file_get_contents($fajlnev); return json_decode($s, true); function fajlba_ment($fajlnev, $adat) { $s = json_encode($adat); return file_put_contents($fajlnev, $s, LOCK_EX);

36 Hibakezelés 36 Hibalehetőségek beolvasásnál nincs (még) meg a fájl egyéb hiba történik alapértelmezett szerkezet megadása function fajlbol_betolt($fajlnev, $alap = array()) { $s return (s === false? $alap : json_decode($s, true)); $filmek = fajlbol_betolt('filmek.txt', array()); //vagy $filmek = fajlbol_betolt('filmek.txt');

37 Példa új szereplő hozzáadása 37 $filmek = fajlbol_betolt('filmek.txt'); $filmek[0]['szereplok'][] = 'Monica Bellucci'; fajlba_ment('filmek.txt', $filmek); [{"cim":"passi\u00f3","rendezo":"mel Gibson","ev":"2004","szereplok":["Jim Caviezel","Maia Morgenstern","Christo Jivkov","Monica Bellucci"],{"cim":"Pio atya - A csod\u00e1k embere","rendezo":"carlo Carlei","ev":"2000","szereplok":["Sergio Castellitto","Sergio Albelli"]]

38 38 Munkamenet-kezelés

39 Probléma 39 A HTTP protokoll állapotmentes Nem emlékezik az előző kérés adataira Függetlenül kezeli a kéréseket Klienstől is függetlenül Bizonyos esetekben jól jönne, ha szamol.php tudnánk azonosítani a klienst, és hozzá adatot tárolnánk. munkamenet (session angolul) Kliens1 Kliens2 Kliens3 Kliens4

40 Állapotmentesség 40 $szamlalo mindig 0 Két kérés nem őrzi meg az értékét Nem tudjuk, melyik kliens kérte if (isset($szamlalo)) { $szamlalo += 1; else { $szamlalo = 0; var_dump($szamlalo); szamlal.php szamlal.php szamlal.php Kliens1 Kliens1 Kliens1 Kliens1

41 Munkamenet példák 41 Mindenhol, ahol bejelentkezés szükséges, hogy a saját adatainkhoz férjünk hozzá (cloud) levelezés internetbank feljegyzések Bejelentkezés nélküli alkalmazások webshop kosár online szerkesztők (doodle, stb)

42 Megoldás 42 Ha a HTTP protokoll állapotmentes, akkor az alkalmazásnak kell gondoskodnia az állapot megtartásáról. Alkalmazás = kliens + szerver HTTP a kettejük kommunikációs formája Állapot megtartása: az adat kliensenként történő megőrzése Megvalósítás kliens oldalon szerver oldalon

43 Példa 43 Példa: számláló kliensenként eltérő érték webshop kosara kliensenként eltérő kosarak sok oldal böngészése egy-egy termék kosárba helyezése

44 Kliens oldali állapottartás 44 Az adatot a kliensen tároljuk Minden kérésnél felküldjük a szerverre A szerver visszaadja a kliensnek szamlal.php szamlal.php szamlal.php Kliens1 Kliens1 Kliens1 Kliens1

45 Kliens oldali állapottartás 45 Kliens oldali technológiák URL Rejtett mező Süti

46 Állapottartás URL-ben 46 URL querystring részében menjen az adat szamol.php?szamlalo=1 Hátránya: Minden linkhez oda kell generálni Ha egyről is lemarad, elvész az adat Sok adat nem fér el benne URL hossza legfeljebb 2kB Feltűnő (zavaró) Könnyen átírható Könyvjelzőzhető (nem mindig hátrány)

47 Példa - számláló 47 <?php $szamlalo = 0; if (isset($_get['szamlalo'])) { $szamlalo = $_GET['szamlalo']; $szamlalo += 1; var_dump($szamlalo);?> <a href="szamlalo2.php?szamlalo=<?php echo $szamlalo;?>">növel</a>

48 Állapottartás rejtett mezőben 48 URL: kevés adat, feltűnő, manipulálható űrlap rejtett mezője <input type="hidden" name="szamlalo" value="4"> Előny sok adat nem feltűnő Hátrány manipulálható csak űrlapok esetén normál linkeknél JavaScript kell

49 Példa számláló 49 <?php $szamlalo = 0; if (isset($_post['szamlalo'])) { $szamlalo = $_POST['szamlalo']; $szamlalo += 1; var_dump($szamlalo);?> <form action="szamlalo3.php" method="post"> <input type="hidden" name="szamlalo" value="<?php echo $szamlalo;?>"> <input type="submit" value="növel"> </form> <!-- Ez nem működik --> <a href="szamlalo3.php">növel</a>

50 Állapottartás sütivel 50 Rejtett mező: macerás, manipulálható süti setcookie($név, $érték, $lejárat); Előny nem feltűnő automatikus küldése Hátrány manipulálható (kódolható) limitált adatmennyiség letiltható

51 Példa számláló 51 <?php $szamlalo = 0; if (isset($_cookie['szamlalo'])) { $szamlalo = $_COOKIE['szamlalo']; $szamlalo += 1; setcookie('szamlalo', $szamlalo); print_r($_get); print_r($_post); print_r($_cookie); var_dump($szamlalo);?> <a href="szamlalo4.php">növel</a>

52 52 Példa számláló

53 Kliensoldali megoldások 53 Adat a kliensen van Manipulálható Sok adat esetén feleslegesen sok adat megy odavissza a kliens és szerver között szamlal.php szamlal.php szamlal.php Kliens1 Kliens1 Kliens1 Kliens1

54 Szerveroldali megoldások 54 Tároljuk az adatot a szerveren nem manipulálható kliens oldalon nem kell sok adatot küldözgetni A kliens megkülönböztetése továbbra is szükséges tokent kap, amivel azonosítja magát és hozzáfér a tokenhez tartozó adatokhoz Token kliensoldali megoldással közlekedik süti (alapértelmezett) url (ha nincs süti)

55 Szerveroldali megoldás szamol.php 55 Kliens1 Kliens3 Kliens2 Kliens4 szamlal.php szamlal.php szamlal.php Kliens1 Kliens1 Kliens1 Kliens1

56 Szerveroldali megoldás 56 Folyamat van a sütik között bizonyos nevű süti ha van, akkor az értéke a token ha nincs, akkor van-e az URL-ben bizonyos nevű paraméter ha van, akkor az értéke a token ha nincs, akkor újat kell kezdeni, és a kliensnek odaadni ha van token, akkor a tokenhez tartozó adatokat a program rendelkezésére bocsátani

57 Szerveroldali megoldás 57 Adatok tárolása fájlban (ld. PHP) adatbázisban Plusz erőforrás a szervertől A tokenre nagyon kell vigyázni ellopható kilépés

58 58 Munkamenet-kezelés PHP-ban

59 Munkamenet-kezelés PHP-ban 59 session_start() session_destroy() $_SESSION tömb SID konstant (PHPSESSID=token)

60 Példa számláló 60 <?php session_start(); print_r($_get); print_r($_session); $szamlalo = 0; if (isset($_session['szamlalo'])) { $szamlalo = $_SESSION['szamlalo']; $szamlalo += 1; $_SESSION['szamlalo'] = $szamlalo; var_dump($szamlalo);?> <a href="szamlalo5.php?<?php echo SID;?>">Növel</a>

61 Példa számláló 61 Munkamenet megszüntetése <?php session_start(); print_r($_get); print_r($_session); $_SESSION = array(); session_destroy(); print_r($_session);?> <a href="szamlalo5.php">vissza</a>

62 Példa - számláló 62 Süti letiltása token az URL-ben

63 63 Hitelesítés

64 Hitelesítés 64 Ki használja az alkalmazást? azonosított felhasználó felhasználónév teljes név névtelen felhasználó vendég Bizonyos oldalak csak azonosított felhasználók számára érhetőek el

65 Technológiák 65.htaccess,.htpasswd könyvtár alapú védelem htdigest md5 kódolt jelszó WWW-Authenticate HTTP része PHP-ból kiolvasható Ezek PHP-tól független technológiák Plusz adat tárolására nem alkalmasak Csak hitelesítésre

66 Hitelesítés munkamenettel 66 Azonosított felhasználó munkamenetében egy speciális kulcsot helyezünk el ezzel jelezzük, hogy már azonosítottuk Folyamat beléptető űrlap (login form) sikeres belépés esetén kulcs minden oldalon: ha ez a kulcs megvan, akkor azonosított ettől függően más logika, más nézet lehet

67 Hitelesítés ellenőrzése 67 munkamenet indítása létezik-e a kulcs a munkamenet adatai között kulcs értéke indifferens külön fájlba tehető session_start(); function azonositott_e() { return isset($_session['belepve']);

68 Regisztráció 68 Űrlap <?php print_r($hibak);?> <form action="reg.php" method="post"> Felhasználónév: <input type="text" name="felhnev"> <br> Jelszó: <input type="password" name="jelszo"> <br> <input type="submit" name="reg" value="regisztrál"> </form>

69 Regisztráció 69 $hibak = array(); if ($_POST) { $felhnev = trim($_post['felhnev']); $jelszo = $_POST['jelszo']; $jelszavak = fajlbol_betolt('jelszavak.txt'); if (strlen($felhnev) == 0) { $hibak[] = 'Nincs felhnev!'; if (strlen($jelszo) == 0) { $hibak[] = 'Nincs jelszo!'; if (array_key_exists($felhnev, $jelszavak)) { $hibak[] = 'Letezo felhnev!'; if (!$hibak) { $jelszavak[$felhnev] = md5($jelszo); fajlba_ment('jelszavak.txt', $jelszavak); header('location: login.php'); exit();

70 Beléptetés 70 Űrlap <?php print_r($hibak);?> <form action="login.php" method="post"> Felhasználónév: <input type="text" name="felhnev"> <br> Jelszó: <input type="password" name="jelszo"> <br> <input type="submit" name="belep" value="belép"> </form>

71 Beléptetés 71 $hibak = array(); if ($_POST) { $felhnev = trim($_post['felhnev']); $jelszo = $_POST['jelszo']; $jelszavak = fajlbol_betolt('jelszavak.txt'); if (!(array_key_exists($felhnev, $jelszavak) && $jelszavak[$felhnev] == md5($jelszo))) { $hibak[] = 'Nem jó!'; if (!$hibak) { $_SESSION['belepve'] = true; $_SESSION['felhnev'] = $felhnev; header('location: szamlalo5.php'); exit();

72 72 Fájlfeltöltés

73 Űrlap és feldolgozás 73 <?php print_r($hibak);?> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="fajl"> <input type="submit" value="feltölt"> </form> $hibak = array(); if ($_FILES) { if (array_key_exists('fajl', $_FILES) && $_FILES['fajl']['error'] == 0) { $honnan = $_FILES['fajl']['tmp_name']; $hova = 'fajlok\\'. $_FILES['fajl']['name']; move_uploaded_file($honnan, $hova); else { $hibak[] = 'Hiba tortent!';

74 $_FILES 74 Array ( [fajl] => Array ( [name] => Desert_small.jpg [type] => image/jpeg [tmp_name] => C:\eltescorm\tmp\php1750.tmp [error] => 0 [size] => ) )

75 Könyvtárlista 75 <ul> <?php foreach($fajlok as $f) :?> <li><?php echo $f;?></li> <?php endforeach;?> </ul> function fajlok($kvt) { $fajlok = array(); $d = opendir($kvt); while (($f = readdir($d))!== false) { $fajlok[] = $f; closedir($d); return $fajlok; $fajlok = fajlok('fajlok\\');

76 76 AJAX

77 Hagyományos oldalak 77 HTTP kapcsolat Kérés-válasz Mindig a böngésző kezdeményez url-t beírva Hivatkozás űrlap

78 Hagyományos oldalak 78 Feldolgozás vagy a kliensen, vagy a szerveren Időben picit eltolva Szerver Kliens Idő

79 Következmény 79 Állandóan frissül a böngészőbeli oldal Szaggatott folyamat Villog Kényelmetlen Oldal tetejére ugrik Néha feleslegesen nagy adattömeg közlekedik

80 Megoldás 80 Csak a szükséges adatok továbbítása a teljes oldal újratöltése nélkül Remote scripting iframe Java applet XMLHttpRequest objektum Régi technológiák, a 90-es évek végén léteztek Akkoriban használták is őket szórványosan

81 Szélesebb körű elterjedtség 81 Sok tényező együttállása Egyre nagyobb internetpenetráció Egyre több webes alkalmazás Szélesebb társadalmi rétegek kapcsolódnak be Nagyobb igények a webes alkalmazások iránt Úttörő, innovatív vállalatok (Google GMail, GMaps, GDocs, stb.) Nevet kap az XMLHttpRequest-es technológia AJAX (2005, Jesse James Garrett)

82 AJAX 82 Aszinkron JavaScript és XML Nem új technológia Meglévő, kiforrott, szabványos technológiák együttese HTML, XHTML, CSS megjelenítés DOM dinamikus felhasználói felület, interakció XML, XSLT adatleíró formátum XMLHttpRequest aszinkron kliens-szerver adatátvitel JavaScript ezeket irányító programozási nyelv

83 AJAX oldalkiszolgálás 83 Szerver XHR XHR XHR Kliens Felhasználó felület Idő

84 AJAX-os oldal 84 A felhasználói felület folyamatosan használható Nincs szaggatottság, villogás, ugrálás A szerverrel való kommunikáció a háttérben történik Aszinkron módon, azaz párhuzamosan a többi eseménnyel Csak a szükséges adatok közlekednek a szerver és kliens között

85 AJAX hívás 85 HTTP kommunikáció url megadása GET és POST adatok küldése válasz feldolgozása Nem a böngésző végzi a HTTP kapcsolat kialakítását, hanem programból vezéreljük XMLHttpRequest objektum

86 XMLHttpRequest: metódusok 86 open( method, URL ) open( method, URL, async, username, password) A cél URL, metódus, stb. hozzárendelése send(content) Kérés küldése, ha van, akkor POST-olt adatokkal vagy DOM objektum adataival abort() Az aktuális kérés leállítása getallresponseheaders() Header-ök visszaadása szövegként név=érték formában getresponseheader( header ) Adott header értékét adja vissza setrequestheader( label, value ) A kérés fejlécét állítja be küldés előtt

87 XMLHttpRequest: tulajdonságok 87 onreadystatechange Eseménykezelő, ami a státusz minden változásánál meghívódik Saját függvényt kell ide implementálni readystate a kérés aktuális státusza 0 = uninitialized 1 = loading 2 = loaded 3 = interactive (néhány adat érkezett) 4 = complete status A szerverről érkező HTTP Status, pl. 200 = OK statustext A szerverről érkező státusz szövege responsetext A szerverről visszaérkezett adat szöveges változata responsexml A szerverről érkezett adat XML DOM dokumentuma

88 88 Példa lépésről lépésre Kódevolúció

89 Példa 89 Ping szerver megszólítása válaszban az aktuális idő érkezik vissza Felhasználói felület gomb div kimenet Szerver ping.php XHR Kliens Felhasználó felület

90 ping.html 91 <!doctype html> <html> <head> <meta charset="utf-8"> <title>ajax példa</title> <script type="text/javascript" src="ping.js"></script> </head> <body> <input type="button" id="gomb" value="ping"> <hr> <div id="output"></div> </body> </html>

91 ping.php 92 print_r($_get); print_r($_post); echo date('y.m.d. G:i:s');

92 Szinkron megoldás 93 ping.js function $(id) { return document.getelementbyid(id); window.onload = function () { $('gomb').onclick = ping; function ping() { var xhr = new XMLHttpRequest(); xhr.open('get', 'ping.php', false); xhr.send(null); $('output').innerhtml = xhr.responsetext;

93 Szinkron megoldás 94 Szinkron = akkor folytatódik a szkript futása, ha a válasz megérkezett (ld. alert) Ha sokára érkezik válasz egy ideig nem használható a felület Szaggatott élmény Aszinkronitás Szerver ping.php XHR Kliens

94 Aszinkron kommunikáció 95 Az elküldést követően a szkript továbbfut Eseményen keresztül értesülünk a válasz megérkezéséről readystate tulajdonság változik onreadystatechange eseménykezelőt kell írnunk

95 Aszinkron megoldás 96 var xhr; function ping() { xhr = new XMLHttpRequest(); xhr.open('get', 'ping.php', true); xhr.onreadystatechange = pingkezelo; xhr.send(null); function pingkezelo() { if (xhr.readystate == 4 && xhr.status == 200) { $('output').innerhtml = xhr.responsetext;

96 Aszinkron megoldás 97 Két függvény Mindkettőben szükség van az xhr objektumra Globális xhr objektum Ez problémás több kérés esetén újrahasznosítás globális névtér teleszemetelése adjuk át paraméterként

97 XHR objektum paraméterként 98 Névtelen függvény segítségével function ping() { var xhr = new XMLHttpRequest(); xhr.open('get', 'ping.php', true); xhr.onreadystatechange = function () { pingkezelo(xhr); xhr.send(null); function pingkezelo(xhr) { if (xhr.readystate == 4 && xhr.status == 200) { $('output').innerhtml = xhr.responsetext;

98 XHR objektum paraméterként 99 A lényegi részt még jobban leválasztva function ping() { var xhr = new XMLHttpRequest(); xhr.open('get', 'ping.php', true); xhr.onreadystatechange = function () { if (xhr.readystate == 4 && xhr.status == 200) { pingkezelo(xhr); xhr.send(null); function pingkezelo(xhr) { $('output').innerhtml = xhr.responsetext;

99 GET paraméterek 100 Query String az URL-ben function ping() { var xhr = new XMLHttpRequest(); xhr.open('get', 'ping.php?alma=piros', true); xhr.onreadystatechange = function () { if (xhr.readystate == 4 && xhr.status == 200) { pingkezelo(xhr); xhr.send(null); function pingkezelo(xhr) { $('output').innerhtml = xhr.responsetext;

100 POST paraméterek 101 Query String az üzenettörzsben send() metódus paramétereként speciális kódolás beállítása kérés fejléceként Content-Type: application/x-www-form-urlencoded

101 POST paraméterek 102 function ping() { var xhr = new XMLHttpRequest(); xhr.open('post', 'ping.php?alma=piros', true); xhr.setrequestheader('content-type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function () { if (xhr.readystate == 4 && xhr.status == 200) { pingkezelo(xhr); xhr.send('korte=sarga'); function pingkezelo(xhr) { $('output').innerhtml = xhr.responsetext;

102 XMLHttpRequest objektum 103 Manapság minden böngészőben new XMLHttpRequest() Régebben böngészőnkénti eltérés: IE-ben másképp function getxhr() { var xhr = null; try { xhr = new XMLHttpRequest(); catch(e) { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); catch(e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); catch(e) { xhr = null; return xhr; function ping() { var xhr = getxhr(); //...

103 Hibakezelés 104 function ping() { var xhr = getxhr(); xhr.open('post', 'ping.php?alma=piros', true); xhr.setrequestheader('content-type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function () { if (xhr.readystate == 4) { if (xhr.status == 200) { pingkezelo(xhr); else { console.log('hiba'); xhr.send('korte=sarga');

104 Általánosítás 105 AJAX hívás nagy része mindig ugyanaz Változó url metódus (GET/POST) GET adatok POST adatok feldolgozó függvény siker esetén feldolgozó függvény hiba esetén ajax() függvény

105 Általánosítás ajax() függvény 106 Alapértelmezett értékek function ajax(opts) { var method = opts.method 'GET', url = opts.url '', getdata = opts.getdata '', postdata = opts.postdata '', success = opts.success function(){, error = opts.error function(){; method = method.touppercase(); url = url+'?'+getdata; var xhr = getxhr(); xhr.open(method, url, true); if (method === 'POST') { xhr.setrequestheader('content-type', 'application/x-www-form-urlencoded');

106 Általánosítás ajax() függvény 107 Folytatás xhr.onreadystatechange = function () { if (xhr.readystate == 4) { if (xhr.status == 200) { success(xhr, xhr.responsetext); else { error(xhr); ; xhr.send(method == 'POST'? postdata : null); return xhr;

107 Megoldás ajax() függvénnyel 108 function ping() { ajax({ method: 'post', url: 'ping.php', getdata: 'alma=piros', postdata: 'korte=sarga', success: pingkezelo ); function pingkezelo(xhr, text) { $('output').innerhtml = text;

108 Megoldás ajax() függvénnyel 109 Névtelen függvénnyel még rövidebb function ping() { ajax({ method: 'post', url: 'ping.php', getdata: 'alma=piros', postdata: 'korte=sarga', success: function (xhr, text) { $('output').innerhtml = text; );

109 Összefoglalás 110 Segédfüggvény getxhr() ajax() Alkalmazás deklaratív az ajax() függvény paraméterezése

110 111 Válaszformátumok

111 AJAX I/O 112 Kérés (input) GET paraméterek POST paraméterek HTTP fejlécek Válasz (output) Text JSON HTML JavaScript stb. (CSS, )

112 Tartalom előállítása 113 A válasz az előállítás módjától függően lehet Statikus tartalom Dinamikus tartalom A kliens szempontjából mindegy, hogy ki állítja elő a tartalmat (nem is tud róla) Csak a válasz formátumára koncentrálunk

113 Statikus kiszolgálás 114 A fájlok tartalma előre adott Kérés pillanatában már létezik a válasz a szerveren Példa gyümölcsök listája felsorolás

114 Statikus kiszolgálás 115 Szerver text json html xml XHR Kliens Felhasználó felület

115 format.html 116 <!doctype html> <html> <head> <meta charset="utf-8"> <title>ajax példa</title> <script type="text/javascript" src="ajax.js"></script> <script type="text/javascript" src="format.js"></script> </head> <body> <input type="button" id="btntext" value="text"> <input type="button" id="btnjson" value="json"> <input type="button" id="btnhtml" value="html"> <input type="button" id="btnxml" value="xml"> <input type="button" id="btnscript" value="szkript"> <hr> <div id="output"></div> </body> </html>

116 Szöveges válasz feldolgozása 117 gyumolcs.txt és a feldolgozó szkript alma,körte,szilva,barack,eper,málna,szeder function lista(t) { return '<ul><li>' + t.join('</li><li>') + '</li></ul>'; function text() { ajax({ url: 'gyumolcs.txt', success: function (xhr, text) { console.log(text); var t = text.split(','); $('output').innerhtml = (new Date()).toLocaleString() + lista(t); );

117 Szöveges válasz feldolgozása 118 A szöveges válasz formátumától függ Egyedi feldolgozás Sokszor bonyolult logika Bármi lehet Ritkábban használják

118 JSON válasz és feldolgozása 119 gyumolcs.json és a feldolgozó szkript lista() függvény (ld. a szöveges feldolgozásnál) [ ] "alma", "körte", "szilva", "barack", "eper", "málna", "szeder" function json() { ajax({ url: 'gyumolcs.json', success: function (xhr, text) { var json = eval(text); // vagy var json = JSON.parse(text); console.log(json); $('output').innerhtml = (new Date()).toLocaleString() + lista(json); );

119 JSON válasz 120 JSON általános adatleíró formátum Nagyon elterjedt Gyakran használatos Egyszerű az értelmezése eval JSON.parse Utána más JavaScript adatszerkezetekkel kell dolgozni

120 HTML válasz és feldolgozása 121 gyumolcs.html feldolgozó szkript <ul> <li>alma</li> <li>körte</li> <li>szilva</li> <li>barack</li> <li>eper</li> <li>málna</li> <li>szeder</li> </ul> function html() { ajax({ url: 'gyumolcs.html', success: function (xhr, text) { var html = text; console.log(html); $('output').innerhtml = (new Date()).toLocaleString() + html; );

121 HTML válasz 122 Szabványos formátum Elterjedt Egyszerű a feldolgozása tipikusan a választ egy másik elembe kell helyezni

122 XML válasz és feldolgozása 123 gyumolcs.xml <?xml version="1.0" encoding="utf-8"?> <gyumolcsok> <gyumolcs>alma</gyumolcs> <gyumolcs>körte</gyumolcs> <gyumolcs>szilva</gyumolcs> <gyumolcs>barack</gyumolcs> <gyumolcs>eper</gyumolcs> <gyumolcs>málna</gyumolcs> <gyumolcs>szeder</gyumolcs> </gyumolcsok>

123 XML válasz és feldolgozása 124 function feldolgozó xml() { szkript ajax({ url: 'gyumolcs.xml', success: function (xhr, text) { var xmldom = xhr.responsexml; console.log(xmldom); ); var gyumolcsok = xmldom.getelementsbytagname('gyumolcs'); var t = []; for (var i = 0; i < gyumolcsok.length; i++) { t.push(gyumolcsok[i].firstchild.nodevalue); ; $('output').innerhtml = (new Date()).toLocaleString() + lista(t);

124 XML válasz 125 Szabványos adatleírási formátum Nagyon elterjedt főleg vállalati alkalmazásokban webes alkalmazásokban kevésbé Eredetileg ezt várták fő formátumnak xhr.responsexml responsexml az XML dokumentum értelmezett DOM fáját tartalmazza (ld. HTML DOM)

125 Dinamikus válasz 126 A választ egy program (PHP) állítja elő Válasz formátuma bármi lehet text json html xml stb. Szerver gyumolcs.php XHR Kliens Felhasználó felület

126 gyumolcs.php 127 JSON válasz generálása egyszerű $gyumolcsok = array( "alma", "körte", "szilva", "barack", "eper", "málna", "szeder", ); echo json_encode($gyumolcsok);

127 128 További tudnivalók

128 Eszközök 129 JavaScript konzolok Nyomon követik az AJAX-os hívásokat kérés válasz értelmezett válasz lekérés időtartama console.log

129 Korlátozások 130 Biztonsági okokból nem engedélyezett különböző domainek között ajax kommunikáció Kivéve JSONP (JSON with Padding): script elem dinamikus beszúrásával idegen tartalom futtatása Nincsen szerver push itt sem: ajax kéréseket mindig a kliens kezdeményezi

130 Ergonómiai szempontok 131 Más oldalszervezés HASZNÁLHATÓSÁG Jelezni, hogy a háttérben művelet zajlik A felhasználó adatait ne írjuk át Jelezni, ha hiba van Jelezni, ha jó

131 Előnyök és hátrányok 132 Előnyök Nincs szaggatás Kényelmes felület Gyors Jóval kisebb adatforgalom Párhuzamos kérések Hátrányok JavaScript kell Eltérő támogatottság Vissza gomb Frissít gomb Más oldalszervezési logika

WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK

WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Dinamikus szerveroldali webprogramozás:

Részletesebben

WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS

WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 PHP beadandó 2 Honlapról elérhető Labirintus-játék

Részletesebben

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI

Részletesebben

Bevezetés Működési elv AJAX keretrendszerek AJAX

Bevezetés Működési elv AJAX keretrendszerek AJAX AJAX Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek

Részletesebben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 5.ELŐADÁS. Sütik és munkamenetek kezelése 2015-2016

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 5.ELŐADÁS. Sütik és munkamenetek kezelése 2015-2016 Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 5.ELŐADÁS 2015-2016 Sütik és munkamenetek kezelése A HTTP protokoll Emlékeztető 2 A HTTP protokoll állapotmentes Nem emlékezik az előző kérés

Részletesebben

WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK

WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 PHP beadandó 2 Honlapról elérhető Grafilogika szerveroldali funkcionalitása

Részletesebben

WEBFEJLESZTÉS 2. AJAX

WEBFEJLESZTÉS 2. AJAX WEBFEJLESZTÉS 2. AJAX Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Dinamikus szerveroldali webprogramozás Output (HTML generálás)

Részletesebben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS 2015-2016 Fájlkezelés PHP-ben Fájlok és könyvtárak kezelése 2 A PHP a Javascript-hez hasonlóan, nem képes a felhasználó merevlemezén

Részletesebben

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk. JSON tutorial Készítette: Cyber Zero Web: www.cyberzero.tk E-mail: cyberzero@freemail.hu Msn: cyberzero@mailpont.hu Skype: cyberzero_cz Fb: https://www.facebook.com/cyberzero.cz BEVEZETÉS: A JSON (JavaScript

Részletesebben

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group COMET webalkalmazás fejlesztés Tóth Ádám Jasmin Media Group Az előadás tartalmából Alapproblémák, fundamentális kérdések Az eseményvezérelt architektúra alapjai HTTP-streaming megoldások AJAX Polling COMET

Részletesebben

Web-fejlesztés NGM_IN002_1

Web-fejlesztés NGM_IN002_1 Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása

Részletesebben

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT alapjai, bevezetés Vincze Dávid Miskolci Egyetem, IIT vincze.david@iit.uni-miskolc.hu PHP Personal Home Page (Tools) Script nyelv -> interpretált Elsősorban weboldal (dinamikus) tartalmak előállítására

Részletesebben

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül

Részletesebben

AJAX-ot támogató keretrendszerek

AJAX-ot támogató keretrendszerek AJAX Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek AJAX AJAX: Asynchronous JavaScript and XML az alábbi technológiákon alapul: (X)HTML, CSS XML JavaScript 2005-ben vált népszerűvé

Részletesebben

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

MicroSigner Közvetítő Szerver fejlesztői dokumentáció MICROSEC ZRT. MicroSigner Közvetítő Szerver fejlesztői dokumentáció verzió: 1.0 Ivicsics Sándor, Máté Norbert, Vanczák Gergely 2016.06.09. Tartalom Általános információk... 2 ESign munkamenet létrehozása...

Részletesebben

PHP. Adatbázisok gyakorlat

PHP. Adatbázisok gyakorlat PHP Adatbázisok gyakorlat Mi a PHP? A PHP (PHP: Hypertext Preprocessor) egy nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. A PHP-kódunk általában

Részletesebben

AJAX AJAX. AJAX: Asynchronous JavaScript and XML. az alábbi technológiákon alapul: AJAX-ot támogató keretrendszerek

AJAX AJAX. AJAX: Asynchronous JavaScript and XML. az alábbi technológiákon alapul: AJAX-ot támogató keretrendszerek Áttekintés AJAX Bevezetés Működési elv AJAX-ot támogató keretrendszerek 1 / 25 2 / 25 AJAX AJAX: Asynchronous JavaScript and XML az alábbi technológiákon alapul: (X)HTML, CSS XML JavaScript Motiváció:

Részletesebben

A Http és a PHP kapcsolata. Web-Sky Consulting Kft Tóth Imre 2009

A Http és a PHP kapcsolata. Web-Sky Consulting Kft Tóth Imre 2009 A Http és a PHP kapcsolata Web-Sky Consulting Kft Tóth Imre 2009 Előadások címei 1. PHP nyelv alapjai 2. Objektumorientáltság a PHP-ben 3. A Http és a PHP kapcsolata 4. Adatbázis kezelés a PHP-ben 5. MVC

Részletesebben

PHP-MySQL. Adatbázisok gyakorlat

PHP-MySQL. Adatbázisok gyakorlat PHP-MySQL Adatbázisok gyakorlat Weboldalak és adatbázisok Az eddigiek során megismertük, hogyan lehet a PHP segítségével dinamikus weblapokat készíteni. A dinamikus weboldalak az esetek többségében valamilyen

Részletesebben

Valimed API. REST API a magyarországi orvos pecsétszámok validálására

Valimed API. REST API a magyarországi orvos pecsétszámok validálására Valimed API REST API a magyarországi orvos pecsétszámok validálására 1. A Valimedről és a jogi háttérről A Valimed legfőképpen gyógyszergyártóknak és orvosi témában érdekelt online szolgáltatóknak szóló

Részletesebben

Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András

Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András Webapp (in)security Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt Veres-Szentkirályi András Rövid áttekintés Webalkalmazások fejlesztése során elkövetett leggyakoribb hibák

Részletesebben

Bevetés közben Ismerkedés az Ajaxszal

Bevetés közben Ismerkedés az Ajaxszal Bevetés közben Ismerkedés az Ajaxszal Hogy kerül az A mint aszinkron az Ajaxba? Sok programozó, így én is, jó ideje ismeri a Javascript-et, mellyel dinamikusan módosíthat HTML oldalakat. Persze más apró

Részletesebben

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama 10. évfolyam: 105 óra 11. évfolyam: 140 óra 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra 36 óra OOP 14 óra Programozási

Részletesebben

JavaServer Pages (JSP) (folytatás)

JavaServer Pages (JSP) (folytatás) JavaServer Pages (JSP) (folytatás) MVC architektúra a Java kiszolgálón Ügyfél (Böngésző) 5 View elküldi az oldal az ügyfélez View (JSP) Ügyfél üzenet küldése a vezérlőnek 1 3 4 Kérelem továbbítása a megjelenítőnek

Részletesebben

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

MicroSigner Közvetítő Szerver fejlesztői dokumentáció MICROSEC ZRT. MicroSigner Közvetítő Szerver fejlesztői dokumentáció verzió: 1.0 Ivicsics Sándor, Máté Norbert, Vanczák Gergely 2016.06.09. Tartalom Általános információk... 2 ESign munkamenet létrehozása...

Részletesebben

Web fejlesztés II. Illés Zoltán ELTE Informatikai Kar zoltan.illes@elte.hu. I n f o r m a t i k a

Web fejlesztés II. Illés Zoltán ELTE Informatikai Kar zoltan.illes@elte.hu. I n f o r m a t i k a Web fejlesztés II. Illés Zoltán ELTE Informatikai Kar zoltan.illes@elte.hu AJaX Asynchronous JavaScript and XML Mi a baj a HTTP-vel, CGI-vel? Nincs baj, de nem elég hatékony. Első igények 2000 körül. Jesse

Részletesebben

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir(); WEB-PROGRAMOZÁS II 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: a) Legyen a Felhasznalo osztálynak egy osztály szintű publikus változója, amelyben számolja a létrehozott példányai

Részletesebben

Ajax és Echo 2. Bokor Attila

Ajax és Echo 2. Bokor Attila Ajax és Echo 2 Bokor Attila attila.bokor@netvisor.hu Tartalom Ajax áttekintés Echo2 Echo2 kiegészítések Asynchronous JavaScript and XML Webfejlesztési technika interaktív webalkalmazásokhoz Kifejezés közösen

Részletesebben

Webszolgáltatások (WS)

Webszolgáltatások (WS) Webszolgáltatások (WS) Webszolgáltatások fogalma IBM (lényege) Egy interface, mely a hálózaton keresztül szabványos XML üzenetekkel érhető el és hozzá formálsi XML leírás tartozik. (soap, wsdl) Sun Szoftverelemek,

Részletesebben

API tervezése mobil környezetbe. gyakorlat

API tervezése mobil környezetbe. gyakorlat API tervezése mobil környezetbe gyakorlat Feladat Szenzoradatokat gyűjtő rendszer Mobil klienssel Webes adminisztrációs felület API felhasználói Szenzor node Egyirányú adatküldés Kis számítási kapacitás

Részletesebben

S z á m í t ó g é p e s a l a p i s m e r e t e k

S z á m í t ó g é p e s a l a p i s m e r e t e k S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok WEB PROGRAMOZÁS 3.ELŐADÁS Űrlapok 2 Globális és környezeti változók Globális és környezeti változók 3 A globális változók azok a változók, amelyeket a program legfelső szintjén, azaz a függvényeken kívül

Részletesebben

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs Szabadkai Műszaki Szakfőiskola Web programozás dr Zlatko Čović chole@vts.su.ac.rs 1 DOM események (events) JavaScriptben interaktív programok készítésére az események által vezérelt programozási modellt

Részletesebben

Tartalom. A JavaScript haladó lehet ségei. Megjelenés. Viselkedés. Progresszív fejlesztés. A progresszív fejlesztés alapelvei

Tartalom. A JavaScript haladó lehet ségei. Megjelenés. Viselkedés. Progresszív fejlesztés. A progresszív fejlesztés alapelvei Tartalom A JavaScript haladó lehet ségei webprogramozó A szöveg, amit a látogató az oldalainkon olvashat Szövegként írjuk meg HTML elemekkel osztjuk egységekre Megjelenés A szöveg kinézete és elrendezése

Részletesebben

"Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban" JAVA ALAPÚ WEBPROGRAMOZÁS. M6 Modul: A DOM Modell

Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban JAVA ALAPÚ WEBPROGRAMOZÁS. M6 Modul: A DOM Modell "Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban" JAVA ALAPÚ WEBPROGRAMOZÁS M6 Modul: A DOM Modell Bevezető - platform- és nyelvfüggetlen programozási interfész - tartalom-, szerkezet- és stílus-elérés/módosítás

Részletesebben

Listák, szótárak, fájlok Listák, szótárak, fájlok

Listák, szótárak, fájlok Listák, szótárak, fájlok lista fogalma, használata listák másolása (alap szintű, teljes körű) szótárak fogalma, használata adatbázis alkalmazás fejlesztése műveletek fájlokkal (megnyítás, írás, olvasás, lezárás) rejtjelező alkalmazás

Részletesebben

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 1. előadás Webes alkalmazások és biztonságuk 2014.02.10. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

WEBES ALKALMAZÁSFEJLESZTÉS 1.

WEBES ALKALMAZÁSFEJLESZTÉS 1. WEBES ALKALMAZÁSFEJLESZTÉS 1. Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.404 Tel: (1) 372-2500/1816 Tartalom 2 AJAX elve AJAX technológiai alapjai AJAX jquery-vel JSON

Részletesebben

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Részletesebben

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán Jelszavak helyes megválasztása, szótáras törés Pánczél Zoltán 1 Miért fontos a megfelelő jelszó? Nagyban növeli a rendszer biztonságát. Könnyű jelszó = Nincs jelszó A teljes rendszer biztonsága tőlünk

Részletesebben

Web programoz as 2009 2010

Web programoz as 2009 2010 Web programozás 2009 2010 Áttekintés A web rövid története Kliens szerver architektúra Néhány alapfogalom Kliens- illetve szerver oldali technológiák áttekintése Áttekintés: miről lesz szó (kurzus/labor/vizsga)

Részletesebben

ELTE SAP Excellence Center Oktatóanyag 1

ELTE SAP Excellence Center Oktatóanyag 1 Oktatóanyag 1 A dataset egy az alkalmazás-szerveren megtalálható illetve ott létrejövő szekvenciális fájl. Szerveroldali fájlkezelésre használják az SAP-ban. Megjegyzés: Amennyiben kliens oldalon található

Részletesebben

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

MicroSigner Közvetítő Szerver fejlesztői dokumentáció MICROSEC ZRT. MicroSigner Közvetítő Szerver fejlesztői dokumentáció verzió: 1.0 Ivicsics Sándor, Máté Norbert, Vanczák Gergely 2016.06.09. Tartalom Általános információk... 2 ESign munkamenet létrehozása...

Részletesebben

Nyilvántartási Rendszer

Nyilvántartási Rendszer Nyilvántartási Rendszer Veszprém Megyei Levéltár 2011.04.14. Készítette: Juszt Miklós Honnan indultunk? Rövid történeti áttekintés 2003 2007 2008-2011 Access alapú raktári topográfia Adatbázis optimalizálás,

Részletesebben

Memória játék. Felhasználói dokumentáció

Memória játék. Felhasználói dokumentáció Memória játék Felhasználói dokumentáció Feladat: JavaScript segítségével, olyan programot írni, mely összekeveri a lapokat, majd a felhasználónak kell párosítani. HTML oldalba ágyazva és CSS-el formázva.

Részletesebben

MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.

MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2. Telefon: Fax: E-mail: (+36-1) 269-1642 (+36-1) 331 8479 info@ex-lh.hu www.ex-lh.hu Eötvös József Főiskola 6500 Baja, Szegedi út 2. MŰSZAKI DOKUMENTÁCIÓ Aleph WebOPAC elérhetővé tétele okostelefonon Pályázati

Részletesebben

Természetesen készíts egy csempe nevű könyvtárat és ide mentsd az index.html állományt.

Természetesen készíts egy csempe nevű könyvtárat és ide mentsd az index.html állományt. Csempe kalkula tor A küldetésünk az, hogy segítsünk kiszámítani egy fürdőszoba csempeszükségletét (felületét). Sőt, ha a kalkulátort használó ügyfél elégedett egyből elküldheti az e-mail címét, hogy a

Részletesebben

A szerzõrõl... vii Köszönetnyilvánítás... ix Bevezetés... xi A könyv példakódjai... xiii Áttekintés... xv Tartalomjegyzék... xvii

A szerzõrõl... vii Köszönetnyilvánítás... ix Bevezetés... xi A könyv példakódjai... xiii Áttekintés... xv Tartalomjegyzék... xvii Tartalomjegyzék A szerzõrõl.................................................... vii Köszönetnyilvánítás.............................................. ix Bevezetés......................................................

Részletesebben

Internet technológiák

Internet technológiák Szabadkai Műszaki Szakfőiskola Internet technológiák dr Zlatko Čović chole@vts.su.ac.rs 1 XHTML űrlapok 2 XHTML űrlapok Minden űrlap jelölőelem a: form{action, enctype, method} Űrlaptartalom /form jelölőelem

Részletesebben

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa Web Technológiák Java Server Pages - JSP Répási Tibor egyetemi tanársegéd Miskolc Egyetem Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Általános Informatikai Tanszék Iroda: Inf.Int. 108. Tel: 2101

Részletesebben

AJAX Framework építés. Nagy Attila Gábor Wildom Kft. nagya@wildom.com

AJAX Framework építés. Nagy Attila Gábor Wildom Kft. nagya@wildom.com AJAX Framework építés Wildom Kft. nagya@wildom.com Mi az AJAX? Asynchronous JavaScript and XML Ennél azért kicsit több: Koncepció váltás a felhasználói interface tervezésben Standard kompatibilis HTML!

Részletesebben

TERC V.I.P. hardverkulcs regisztráció

TERC V.I.P. hardverkulcs regisztráció TERC V.I.P. hardverkulcs regisztráció 2014. második félévétől kezdődően a TERC V.I.P. költségvetés-készítő program hardverkulcsát regisztrálniuk kell a felhasználóknak azon a számítógépen, melyeken futtatni

Részletesebben

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok HTML Ismerkedés a JavaScripttel webprogramozó A weblapokat HTML nyelven készíthetjük el. A HTML egyszer leírónyelv, nem alkalmas válaszolni a felhasználóknak, nem tud döntéseket hozni, nem tud végrehajtani

Részletesebben

A JavaScript főbb tulajdonságai

A JavaScript főbb tulajdonságai JavaScript alapok A JavaScript főbb tulajdonságai Script nyelv azaz futás közben értelmezett, interpretált nyelv Legfőbb alkalmazási területe: a HTML dokumentumok dinamikussá, interaktívvá tétele Gyengén

Részletesebben

Információ és kommunikáció

Információ és kommunikáció Információ és kommunikáció Tanmenet Információ és kommunikáció TANMENET- Információ és kommunikáció Témakörök Javasolt óraszám 1. Hálózati alapismeretek 20 perc 2. Az internet jellemzői 25 perc 3. Szolgáltatások

Részletesebben

Google Web Toolkit. Elek Márton. Drótposta kft.

Google Web Toolkit. Elek Márton. Drótposta kft. Google Web Toolkit Elek Márton Drótposta kft. Tartalom A GWT általában Java forrás, Web mód, Hosted mód Speciális szolgáltatások History kezelés, távoli eljárás hívás, Külső függvénykönyvtárak GWT-Ext,

Részletesebben

10.óra CodeIgniter Framework #3. Gyimesi Ákos

10.óra CodeIgniter Framework #3. Gyimesi Ákos 10.óra CodeIgniter Framework #3 Gyimesi Ákos gyimesi.akos@gmail.com http://webprog.gy-i-m.com Ismétlés Model View Controller Ismétlés Model application/models/books_model.php: class Books_model extends

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

PHP MySQL, Java JDBC MySQL. Adatbázisok az iskolában 2012 Dr. Balázs Péter Palatinus Endre és Erdőhelyi Balázs diái alapján

PHP MySQL, Java JDBC MySQL. Adatbázisok az iskolában 2012 Dr. Balázs Péter Palatinus Endre és Erdőhelyi Balázs diái alapján PHP MySQL, Java JDBC MySQL Adatbázisok az iskolában 2012 Dr. Balázs Péter Palatinus Endre és Erdőhelyi Balázs diái alapján Mi a PHP? A PHP (PHP: Hypertext Preprocessor) egy nyílt forráskódú, számítógépes

Részletesebben

A WEB programozása - Bevezetés. 2010. őszi félév Dr. Gál Tibor

A WEB programozása - Bevezetés. 2010. őszi félév Dr. Gál Tibor A WEB Programozása Dr. Gál Tibor Automatizálási és Alkalmazott Informatikai Tanszék Általános információ Kommunikáció az előadóval Iroda: V2. épület, IV. emelet 454. szoba Tel: 2835 email: gal@aut.bme.hu

Részletesebben

WEBFEJLESZTÉS 2. PHP NYELVI ALAPOK

WEBFEJLESZTÉS 2. PHP NYELVI ALAPOK WEBFEJLESZTÉS 2. PHP NYELVI ALAPOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Szerveroldali dinamizmus Kliensoldali webprogramozás 3 Kliens-szerver

Részletesebben

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism) Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

PFW Programing Fundamentals Wizard

PFW Programing Fundamentals Wizard PFW Programing Fundamentals Wizard Bevezetés Ez a webes alkalmazás a https://157.181.166.134:8181/pfw címen érhető el. Azért, hogy a kommunikáció biztonságos kapcsolaton keresztül történjen, tanúsítványra

Részletesebben

Jquery. Konstantinusz Kft.

Jquery. Konstantinusz Kft. Konstantinusz Kft. 2011 1 Tartalomjegyzék 1 Tartalomjegyzék... 2 2 Bevezetés... 3 3 Használata... 4 3.1 A $ függvény... 4 3.2 Elemek kiválasztása... 5 3.3 Fontosabb függvények... 6 3.3.1 Animációk... 7

Részletesebben

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22 Szerializáció Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 1 / 22 Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML

Részletesebben

Multimédia 2017/2018 II.

Multimédia 2017/2018 II. Multimédia 2017/2018 II. 1. gyakorlat HTML5, CSS3 alapok Alapvető HTML5 elemek Egyszerű HTML dokumentum Oldal cime

Részletesebben

Web programozás. 3. előadás

Web programozás. 3. előadás Web programozás 3. előadás Űrlapok form label for input type select, option value szöveges mező: text textarea jelszó: password rádiógomb: radio jelölőnégyzet: checkbox küldés gomb: submit Web programozás

Részletesebben

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk. Cserép Máté

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk. Cserép Máté Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 1. előadás Webes alkalmazások és biztonságuk Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Kommunikáció Alkalmazások

Részletesebben

Készítette: Gál Tamás. A tananyag programozott változata itt érhető el: Webfejlesztés

Készítette: Gál Tamás. A tananyag programozott változata itt érhető el: Webfejlesztés HLTML 5 formok gyorstalpaló Készítette: Gál Tamás A tananyag programozott változata itt érhető el: Webfejlesztés (http://webfejlesztes.gtportal.eu/) Creative Commons Nevezd meg!-ne add el!-így add tovább!

Részletesebben

TUDNIVALÓK A WEB-FEJLESZTÉS I. KURZUSRÓL

TUDNIVALÓK A WEB-FEJLESZTÉS I. KURZUSRÓL TUDNIVALÓK A WEB-FEJLESZTÉS I. KURZUSRÓL http://bit.ly/a1lhps Abonyi-Tóth Andor Egyetemi tanársegéd 1117, Budapest XI. kerület, Pázmány Péter sétány 1/C, 2.404 Tel: (1) 372-2500/8466 http://abonyita.inf.elte.hu

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Folyamok kezelése Fájlok írása/olvasása Folyamok kezelése Szabvány folyamok Eddig Kiírás a szöveges konzolra:

Részletesebben

InFo-Tech emelt díjas SMS szolgáltatás. kommunikációs protokollja. Ver.: 2.1

InFo-Tech emelt díjas SMS szolgáltatás. kommunikációs protokollja. Ver.: 2.1 InFo-Tech emelt díjas SMS szolgáltatás kommunikációs protokollja Ver.: 2.1 InFo-Tech SMS protokoll Az emelt díjas SMS szolgáltatással kapcsolatos beállításokat az adminisztrációs felületen végezheti el.

Részletesebben

Internet programozása. 1. előadás

Internet programozása. 1. előadás Internet programozása 1. előadás Áttekintés 1. Mi a PHP? 2. A PHP fejlődése 3. A PHP 4 újdonságai 4. Miért pont PHP? 5. A programfejlesztés eszközei 1. Mi a PHP? Egy makrókészlet volt, amely személyes

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

Elektronikus levelek. Az informatikai biztonság alapjai II.

Elektronikus levelek. Az informatikai biztonság alapjai II. Elektronikus levelek Az informatikai biztonság alapjai II. Készítette: Póserné Oláh Valéria poserne.valeria@nik.bmf.hu Miről lesz szó? Elektronikus levelek felépítése egyszerű szövegű levél felépítése

Részletesebben

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Egészítsük ki a Drupal-t. Drupal modul fejlesztés Egészítsük ki a Drupal-t Drupal modul fejlesztés Drupal 6.0 2008. február 13. Miért írjunk Drupal modult? Nincs az igényeinknek megfelelő modul Valamilyen közösségi igény kielégítése Valami nem úgy működik

Részletesebben

HTML és CSS. Horváth Árpád május 6. Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár

HTML és CSS. Horváth Árpád május 6. Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár 2015. május 6. Vázlat 1 2 A világháló Története statikus és dinamikus oldal URL DNS-feloldás IP-cím ügyfél (kliens, böngész ) és szerver (kiszolgáló)

Részletesebben

Weboldalak Biztonsági Kérdései

Weboldalak Biztonsági Kérdései Weboldalak Biztonsági Kérdései Kliens szerver modellek Kliens szerver modellek Offline világ Online világ és a programokkal szemben támasztott elvárások helyett... Fejlesztés üteme gyors Előregyártott

Részletesebben

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31 Web programozás 2011 2012 1 / 31 Áttekintés Mi a web? / A web rövid története Kliens szerver architektúra Néhány alapfogalom Kliens- illetve szerver oldali technológiák áttekintése Miről lesz szó... (kurzus/labor/vizsga)

Részletesebben

Információ és kommunikáció

Információ és kommunikáció Információ és kommunikáció Tanmenet Információ és kommunikáció TANMENET- Információ és kommunikáció Témakörök Javasolt óraszám 1. Az internet jellemzői 25 perc 2. Szolgáltatások az interneten 20 perc

Részletesebben

Operációs Rendszerek II. labor. 2. alkalom

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

Részletesebben

Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban. A CryptTalk fejlesztése során alkalmazott módszerek. Dr. Barabás Péter Arenim Technologies

Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban. A CryptTalk fejlesztése során alkalmazott módszerek. Dr. Barabás Péter Arenim Technologies Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban A CryptTalk fejlesztése során alkalmazott módszerek Dr. Barabás Péter Arenim Technologies Agenda CryptTalk Hálózati kommunikáció Authentikált kérések

Részletesebben

Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék

Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék Köszönetnyilvánítás Bevezetés Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék p2p.wrox.com vii xvii xvii xviii

Részletesebben

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez Székely István Debreceni Egyetem, Informatikai Intézet A rendszer felépítése szerver a komponenseket szolgáltatja Java nyelvű implementáció

Részletesebben

Sakk játék. Feladat: JavaScript segítségével olyan programot kell írni, ami egy sakktáblát szimulál. Kiválasztásra változtatják a helyüket.

Sakk játék. Feladat: JavaScript segítségével olyan programot kell írni, ami egy sakktáblát szimulál. Kiválasztásra változtatják a helyüket. Sakk játék Felhasználói dokumentáció Feladat: JavaScript segítségével olyan programot kell írni, ami egy sakktáblát szimulál. Kiválasztásra változtatják a helyüket. Futtatási környezet: A http://10.0.0.101/~hgy/sakk/

Részletesebben

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló

Részletesebben

HÁLÓZATI HASZNÁLATI ÚTMUTATÓ

HÁLÓZATI HASZNÁLATI ÚTMUTATÓ HÁLÓZATI HASZNÁLATI ÚTMUTATÓ Nyomtatási napló tárolása hálózaton 0 verzió HUN A megjegyzések definíciója A Használati útmutatóban következetesen az alábbi szimbólumot használjuk: A megjegyzésekből azt

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

Web-technológia PHP-vel

Web-technológia PHP-vel Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request

Részletesebben

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title; PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function

Részletesebben

3. modul - Szövegszerkesztés

3. modul - Szövegszerkesztés 3. modul - Szövegszerkesztés Érvényes: 2009. február 1-jétől Az alábbiakban ismertetjük a 3. modul (Szövegszerkesztés) syllabusát, amely a gyakorlati vizsga alapját képezi. A modul célja Ezen a vizsgán

Részletesebben

Smarty AJAX. Miért jó ez? Ha utálsz gépelni, akkor tudod. Milyen műveletet tudunk elvégezni velük:

Smarty AJAX. Miért jó ez? Ha utálsz gépelni, akkor tudod. Milyen műveletet tudunk elvégezni velük: Smarty AJAX Smarty sablonrendszer fegyverzetét (Funkcióit) igyekszik kiegészíteni, néhány alap AJAX metódussal, amivel a megjelenést, kényelmet vagy a funkcionalitást növelhetjük. A Smarty Ajax függvényeknek

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

Webes űrlapok és az XForms ajánlás

Webes űrlapok és az XForms ajánlás Debreceni Egyetem Informatikai Kar Webes űrlapok és az XForms ajánlás Témavezető: Dr. Adamkó Attila egyetemi adjunktus Készítette: Hetei György programtervező Informatikus Debrecen 2010 Bevezetés 3 A HTML

Részletesebben

Operációs rendszerek. UNIX fájlrendszer

Operációs rendszerek. UNIX fájlrendszer Operációs rendszerek UNIX fájlrendszer UNIX fájlrendszer Alapegység: a file, amelyet byte-folyamként kezel. Soros (szekvenciális) elérés. Transzparens (átlátszó) file-szerkezet. Link-ek (kapcsolatok) létrehozásának

Részletesebben

MOL NYRT - WEB ISA 3.0 FELHASZNÁLÓI KÉZIKÖNYV

MOL NYRT - WEB ISA 3.0 FELHASZNÁLÓI KÉZIKÖNYV MOL NYRT - WEB ISA 3.0 FELHASZNÁLÓI KÉZIKÖNYV ISA ÚJDONSÁGOK TÖBB TERMÉKVONAL MANUÁLIS RENDELÉS RENDELÉS MONITOROZÁS ELFELEJTETT JELSZÓ KEZELÉS TÖBB SZINTŰ FELHASZNÁLÓI JOGOSULTSÁG Üzemanyag Bitumen Tartályos

Részletesebben

Model View Controller alapú alkalmazásfejlesztés

Model View Controller alapú alkalmazásfejlesztés 10. Laboratóriumi gyakorlat Model View Controller alapú alkalmazásfejlesztés A gyakorlat célja: Az MVC elv megértése és ismerkedés egy egyszerű MVC keretrendszerrel. Felkészüléshez szükséges anyagok: 1.

Részletesebben