Szerver oldali technológiák Szerver oldali script nyelvek PHP

Hasonló dokumentumok
Szerver oldali technológiák Szerver oldali script nyelvek PHP

Szerver oldali technológiák Szerver oldali script nyelvek PHP

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

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

WEB PROGRAMOZÁS 1.ELŐADAS. Dr. Pál László Sapientia EMTE, Csíkszereda, tanév, I. Félév

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Web-technológia PHP-vel

Web programoz as

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

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

PHP. Adatbázisok gyakorlat

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

A PHP nyelv alapjai. Web-Sky Consulting Kft Tóth Imre 2009

Szkriptnyelvek. 1. UNIX shell

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Web-fejlesztés NGM_IN002_1

A webhelyhez kötődő szoftverek architektúrája

JAVA webes alkalmazások

és az instanceof operátor

Forráskód formázási szabályok

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

A JavaScript főbb tulajdonságai

A JavaServer Pages (JSP)

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

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

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

A JavaServer Pages (JSP)

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

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

AWK programozás, minták, vezérlési szerkezetek

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

RIA Rich Internet Application

Tartalomjegyzék. I. rész Az elsõ lépések

A JavaServer Pages (JSP)

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

JAVA PROGRAMOZÁS 2.ELŐADÁS

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC

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

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

Java programozási nyelv 4. rész Osztályok II.

Java programozási nyelv 5. rész Osztályok III.

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Java és web programozás

A C# programozási nyelv alapjai

PHP5 Új generáció (2. rész)

Osztályok. 4. gyakorlat

Web fejlesztés IV. Illés Zoltán ELTE TTK Informatika I n f o r m a t i k a

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();

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

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban

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

AWK programozás Bevezetés

Web programozás. Internet vs. web. Internet: Az Internet nyújtotta néhány alapszolgáltatás:

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

OOP és UML Áttekintés

WEBFEJLESZTÉS 2. PHP NYELVI ALAPOK

AWK programozás, minták, vezérlési szerkezetek

Osztály és objektum fogalma

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

OOP: Java 8.Gy: Abstract osztályok, interfészek

PHP-MySQL. Adatbázisok gyakorlat

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

Programozási nyelvek Java

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

Web programozás I. 4. előadás

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

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

Java II. I A Java programozási nyelv alapelemei

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

Bevezető. Servlet alapgondolatok

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Debreceni Egyetem Informatika Kar

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

OOP #14 (referencia-elv)

Informatika terméktervezőknek

Interfészek. PPT 2007/2008 tavasz.

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

Model View Controller alapú alkalmazásfejlesztés

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.

Hálózatok építése és üzemeltetése

Multimédiás adatbázisok

API tervezése mobil környezetbe. gyakorlat

1. Jelölje meg az összes igaz állítást a következők közül!

Programozási nyelvek JAVA EA+GY 1. gyakolat

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

Java servlet technológia 1 / 40

Adatbázisok gyakorlat

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Programozási nyelvek Python

Földmérési és Távérzékelési Intézet

Átírás:

Áttekintés Szerver oldali technológiák Szerver oldali script nyelvek PHP Szerver oldali technológiák Szerver oldali script nyelvek PHP Általános jellemzők Formkezelés Állománykezelés Cookie (süti) Szessziókövetés MySQL adatbázishozzáférés 1 / 27 2 / 27 Szerver oldali technológiák Szerver oldali technológiák CGI (Common Gateway Interface) ColdFusion HTML kiterjesztés, új tag-ekkel, melyek speciális műveletek elvégzését teszik lehetővé (pl. adatbázishozzáférés) Server Side Includes (SSI) szerver oldali scriptek lefuttatását teszi lehetővé a HTML-be ágyazott parancsok segítségével. Server-Side JavaScript (SSJS) JavaScript kiterjesztése újabb, szerver-oldalon működő objektumokkal PHP Servlet Sun által 1996-ban bevezetett technológia Java Server Pages (JSP) Servlet technológiára épül Active Server Pages (ASP) Microsoft által támogatott szerver-oldali script-nyelv főként Windows-os platformokra Active Server Pages.NET (ASP.NET) a Microsoft.NET keretrendszer része új elemeket hoz az ASP-hez képest (C# Java, CLR JVM) 3 / 27 4 / 27

Szerver oldali script nyelvek Dinamikusan létrehozott HTML oldal Web-szerver gép általános jellemzők pl. a script végrehajtására a szerver gépen kerül sor a HTML-be beágyazott script-ről van szó egy script-értelmező motor dolgozza fel nincs szükség fordításra PHP ASP (Microsoft) www.pl.edu/lap.php HTML Web Szkript értelmező szerver HTML Böngésző megjelenítés kérés HTML old. motor filerendszer lap.php Internet Háttér szerverek (adatbázis, mail, stb.) Figure: HTTP kérés web-alkalmazás esetén 5 / 27 6 / 27 PHP PHP általános jellemzők: PHP PHP: Hypertext Preprocessor (eredetileg: Personal Home Page Rasmus Lerdorf, 1994) jelenleg a legelterjedtebb szerver-oldali script nyelv nyílt forráskódú, ingyenes (http://www.php.net) beágyazható a HTML oldalba platformfüggetlen a legelterjedtebb op. rendszereket támogatja (Unix alapú op. rendszerek, Microsoft Windows, Mac OS X) leggyakrabban az Apache Web-szerverrel (más: Microsoft Internet Information Services, Personal Web Server, Xitami, stb.) PHP állományok kierjesztése:.php,.php[3 4 5],.phtml lehetőségek: dinamikus és interaktív web-oldalak készítése különböző adatbázisok támogatása (MySQL, Oracle, PostgreSQL, Generic ODBC, stb.) kommunikáció egyéb szolgáltatásokat nyújtó szerverekkel (pl. LDAP, IMAP, POP3, SMTP) használható szövegfeldolgozásra, illetve XML állományok feldolgozására (használható parancssorból, illetve kliens oldali alkalmazásként) 7 / 27 8 / 27

PHP PHP script beszúrása Kellékek Web-szerver: Apache (http://www.scs.ubbcluj.ro/) PHP (Script-értelmező motor: Zend) (adatbázis-szerver: MySQL) otthoni használatra Apache (http://httpd.apache.org/) PHP (http://www.php.net/downloads.php) installálás CGI bináris állományként installálás Apache modulként MySQL (http://dev.mysql.com/downloads/) XAMPP (apache+php+mysql egyben): http://www.apachefriends.org/en/xampp-windows.html beágyazása a HTML oldalba (standard):...?> nem standard: <script language="php"> </script>; <??>; <% %> include, include once vagy require függvény segítségével a paraméterként megadott állomány tartalmát egyszerű szövegként szúrják be ha PHP kódot vagy kódrészletet szeretnénk beszúrni, azt,?> tag-ek közé kell írni lásd: beszur.php, allatnev.inc 9 / 27 10 / 27 Szintaxis három helyről örökölt: C, shell script, Perl script általános jellemzők: engedékeny (hibákra való érzékenysége álĺıtható: error reporting(e ALL)) változónevek esetén számít a kis- vagy nagybetű, függvénynevek vagy kulcsszavak esetén nem hasonlóságok a C szintaxissal: operátorok (=,+=, &&,,!, <,>,==, +,-,, %, stb.) kulcsszavak (if, while, for, switch, break, continue) számos függvénynév (pl. printf, string-, illetve filekezelő műveletek, stb.) kommentek (// vagy /*... */) a fehér karakterek száma nem számít ; -vel lezárt parancsok Hasonlóságok a shell illetve Perl script-el: lehet (Perl vagy) shell script-szerű megjegyzést is használni (#) változók neve $ jellel kezdődik (Perl) echo, (egy másik alternatíva: print("egyetlen argumentum")) idézőjelek: (a közé írt változók ki lesznek értékelve), (\\, \ kivételével betű szerint értelmezi a szöveget) reguláris kifejezések használata 11 / 27 12 / 27

változók: típusuk meghatározása dinamikusan történik, értékadáskor (egész: 21, valós: 3.14, karaktersor: szoveg, logikai: TRUE/FALSE, tömb, objektum) nem kell deklarálni nevük: $ karakterrel kezdődik csak betűt, számjegyet vagy karaktert tartalmazhat ($ után nem kezdődhet számjeggyel) kis- vagy nagybetű számít használható referencia: $valt1 = &$valt2; változók: alapértelmezett kezdeti értékek: FALSE, 0, üres string, üres tömb (isset() segítségével megvizsgálható, hogy volt-e már érték adva egy változónak) függvényen belül minden változó alapértelmezés szerint lokális (globális változók elérése függvényen belül: global kulcsszóval, vagy $GLOBALS[<változónév >]) lásd: globalis.php statikus változók: lásd statikus valt.php változó változónevek: lásd valt valt.php automatikus típuskonverzió var dump(); print r() információt ad a megadott változóról gettype a változó típusát téríti vissza (stringként) változó típusának tesztelése: is tipusnév (pl. is integer()) 13 / 27 14 / 27 Tömbök Tömbök PHP-ban a tömb gyakorlatilag egy sorszámozott asszociatív tömb (map) létrehozása: array( kulcs => ertek,...) ahol a kulcs lehet numerikus vagy string, az érték pedig bármilyen típusú lehet egyenkénti értékadással törlés unset() $arr = array(5 => 1, "szam" => 21); elem törlése: unset($arr["szam"]); tömb törlése: unset($arr); tömb elemeinek bejárása: for numerikus index esetén foreach: foreach (tomb as $ertek)... foreach (tomb as $kulcs => $ertek)... lasd: Tomb tomb.php 15 / 27 16 / 27

Függvények saját függvény definiálása: function fgnev($arg 1, $arg 2,..., $arg n) {... return $retval; }?> feltételes függvények (csak a feltétel teljesülését követően érhető el) függvényen belül definiált függvény (csak a külső függvény meghívását követően válik elérhetővé) változófüggvények Objektumok használata (PHP 5) osztálydefiníció (lásd. egyszerupl.php) class MyClass { // adattag deklaráció public $var = alapertelmezett ertek ; // metódus deklaráció public function displayvar() { echo $this->var; } }?> Osztálypéldány létrehozása, hivatkozások $obj = new MyClass(); echo $obj->var; $obj->displayvar();?> 17 / 27 18 / 27 Objektumok öröklődés Objektumok öröklődés egyszeres öröklés extends kulcsszó az örökölt metódusok és adattagok felüĺırhatóak (kivétel: szülő osztályban final-al deklarált metódus) felüĺırt metódusra vagy adattagra hivatkozhatunk parent:: segítségével amennyiben a gyerek rendelkezik saját konstruktorral ( construct függvény) vagy destruktorral ( destruct függvény), akkor a szülő konstruktora/destruktora NEM lesz meghívva automatikusan lásd. oroklodes.php metódusok/adattagok láthatósága public, protected, private egyéb lehetőségek: absztrakt osztály definiálása (abstract kulcsszó) interfész (interface, implements kulcsszavak) statikus adattagok/metódusok lásd.: egyebek.php 19 / 27 20 / 27

PHP beépített globális változók (superglobals) Formkezelés PHP beépített globális változók (asszociatív tömbök): $GLOBALS az összes globális változót tartalmazó tömb $ SERVER a Web-szerver által beálĺıtott értékek, illetve az aktuális script-el kapcsolatos értékek ( PHP SELF, argv GET, query string, SERVER ADDR, REQUEST METHOD, DOCUMENT ROOT, stb.) $ GET a (GET metódussal küldött) kérés paraméterek $ POST (POST metódussal küldött) változók $ COOKIE HTTP-n küldött sütik $ FILES HTTP post metódussal feltöltött állományok $ ENV környezeti változók $ REQUEST GET, POST, és COOKIE változók $ SESSION az aktuális szesszióhoz tartozó változók az elküldött kérés (submit) paraméterei automatikusan elérhetőek a PHP scriptből: $ POST, $ GET, vagy $ REQUEST tömbök segítségével lásd: Formpl form pl.php, form post.htm, form get.htm, file upload form.htm 21 / 27 22 / 27 Filekezelés Süti (cookie) kisméretű szöveges információ, mely a kliens gépén van tárolva leggyakrabban a kliens azonosítására szolgál gyakran használt függvények: fopen, fclose, fwrite, fread, fgets, filesize, feof, file exists, delete, rename, stb. pl. lásd: Filekezeles file modosit.php, fwrite.php cookie létrehozás: setcookie(nev, ertek, lejar, ut, domenium); a <html> tag (illetve bármilyen fehér karakter) előtt kell megjelenjen a kéréssel érkező sütik elérhetősége: a $ COOKIE változón keresztül süti törlés lejárási időpont álĺıtásával setcookie("user", "", time()-3600);?> pl. lásd: Sutik cookie set.php, szamlalo.php 23 / 27 24 / 27

Szessziókövetés Szessziókövetés Szesszió (munkamenet, session): egy konkrét felhasználóra vonatkozó információkat a szesszióban tároljuk ideiglenesen az itt tárolt változók az egész web-alkalmazáson belül hozzáférhetőek (az adott felhasználóra vonatkozóan) egy egyedi azonosító lesz minden egyes felhasználóhoz hozzárendelve, ennek alapján történik a felhasználó beazonosítása az azonosító sütiben van tárolva, vagy az URL-en keresztül történik a közvetítése szesszió indítás: session start();?> a <html> tag ELŐTT kell szerepeljen változók lementése a $ SESSION tömb elemeként: $ SESSION[ nr ]=1; törlés: változó törlése: unset($ SESSION[ nr ]) a teljes szesszió törlése: session destroy(); Pl Szessziokovetes szessziotovabbitas.php, kov.php; bevasarol.php, adatok a szessziobol.php 25 / 27 26 / 27 MySQL adatbázishozzáférés gyakori függvények: csatlakozás az adatbázishoz: mysql connect(); adatbázis kiválasztása: mysql select db(); SQL parancs végrehajtása: mysql query(); egy bejegyzés lekérése a lekérdezés eredményéből: mysql fetch array(); kapcsolat bezárása: mysql close(); lásd: MySQL 1 lekerdez.php, 2 lekerdez.php, form adat bevitel.php, pl komplex.php 27 / 27