28
Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd WEB PROGRAMIRANJE PHP 1 Komunikacija klijenta i servera 1 dr Nenad Kojić

WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

  • Upload
    others

  • View
    29

  • Download
    1

Embed Size (px)

Citation preview

Page 1: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Visoka škola strukovnih studija za

informacione i komunikacione tehnologije

Beograd

WEB PROGRAMIRANJE

PHP 1

Komunikacija klijenta i servera 1

dr Nenad Kojić

Page 2: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Podsećanje

Page 3: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Web sajt

• Web sajt kao i web aplikacija je programska struktura

koja se fizički nalazi na web serveru i koja je namenjena

prikazivaju u browser-u

• Lokacija web sajta je definisana jedinstvenom URL

adresom

• Komunikacija browser-a i web servera se po pravilu

realizuje http protokolom (tj. https)

Page 4: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Browser-server komunikacija

Browser

Internet

provajder

Web server

Internet

Page 5: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

HTTP protokol

• HTTP-Hypertext Transfer Protocol je protokol namenjen

prenosu informacija na WWW (World Wide Web)

• Ovo je protokol između browser-a i servera, i predstavlja

request/response protocol

• Da bi se komunikacija realizovala bitno je da korisnici u

komunikaciji umeju da detektuju http request-ove tj. da

generišu http response-ove

Page 6: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

URL adresa

• Ime servera predstavlja tekstualni ili brojni zapis po kome se server pronalazi

• Pomoću Domain name servers, ili DNS-a, dobija se jedinstvenaIP adresa, koja je zamena za ime servera, i olakšava pamćenje korisnicima

• DNS za www.google.com je 216.239.51.99, pa je puna adresaGoogle-a http://216.239.51.99/

• Ukucavanjem URL adrese u browser, dolazi do podeleadrese u tri dela:1.Tip protokol (http)2.Ime servera (www.pera.com)3.Putanja i ime fajla na serveru kome se pristupa

(dokumenti/prva.php)

Page 7: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

WEB serveri

• Nakon pronalaženja servera browser formira konekciju ka definisanoj IP adresi na portu 80

• U skladu sa HTTP protokolom, browser šalje GET zahtev, i cookie opciono, tražeći konkretan fajl od servera npr.

http://www.pera.com/dokumenti/prva.html

• Server tada šalje teksualni fajl, html kod, promenljive sesije i cookie opciono, koji se u browser-u interpretira i grafički prikazuje korisniku

Web browser Web server

Komunikaciona mreža

Web browser Web server

Komunikaciona mreža

Page 8: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Web Serveri

• Najpopularniji Web server je Apache

- HTTP Server (Apache)

• Sledeći po popularnosti su: NGINX i Microsoft Internet Information Services (IIS) koji se koristi pod Windowsoperativnim sistemom

Page 9: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Tipovi sajtova

• Sajtovi se mogu podeliti na statičke i dinamičke, dok i

jedan i drugi mogu a ne moraju biti interaktivni.

• Statički web sajt podrazumeva fikasan sadržaj koji se

inicijalno kreira i prikazuje na način kako je kreiran.

Prikazuje se svima isto u svakom trenutku vremena.

• Dinamički web sajt podrazumeva kreiranje korisničkog

sadržaja u trenutku pristupa web strani. Ovaj sadržaj se

kreira na odnovu podataka iz baze podataka, i samim

tim je drugačiji ukolike se sadržaj u bazi podataka menja.

Dodato, isti sajt se može razlikovati za razlilite korisnike,

vreme pristupa i uloge korisnika. Npr. facebook.com

Page 10: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Tipovi sajtova

• Bez obzira da li je sajt statički ili dinamički, on se

dodatno može unaprediti interaktivnošču sa korisnikom,

kada kažemo da je sajt interaktivan.

• Ova interaktivnost se najčešće postiže primenom

JavaScript-a

Page 11: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Komunikacija

Web browser Web server

Komunikaciona mreža

Web browser Web server

Komunikaciona mrežaHTMLHTTP

Web browser

Web serverKomunikaciona mreža

PHP procesor

SQL server

Baza

podataka

Baza web stranica

i skriptova

Web browser

Web serverKomunikaciona mreža

PHP procesor

SQL server

Baza

podataka

Baza web stranica

i skriptova

HTML

PHPHTTP

Komunikacija browser-a i web servera kod statičkih sajtova se

realizuje nizom http request-response za svaki pojedinačni fajl

koji je potreban da bi se sajt prikazao.

Komunikacija se ralizuje HTTP-om i browser-u se isporučuju

originalni napisani HTML, CSS, JavaScript i drugi fajlovi koje je

programer postavio na server.

Page 12: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Web programski jezici

• Jedna od podela web programskih jezika je na klijentske i

serverske.

• Klijentski jezici su oni koji se fizički realizuju kod klijenta tj.

na klijentskom računaru. Zato se oni u originalnom obliku

isporuče sa servera, i kada dođu u browser onda ih browser

interpretira i prikazuje korisniku.

• Serverski jezici su oni koji se realizuju na serveru. Za

njihovu realizaciju je neophodan web server i oni se nikada

u originalu ne isporučuje browser-u, jer ih browser „ne

razume“. Klijent zato nikada ne vidi originalni serverski kod,

nego rezultat realizovanog serverkog koda, na samom

serveru, koji kao rezultat rada vraća klijentski kod korisniku.

Page 13: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Komunikacija

Web browser Web server

Komunikaciona mreža

Web browser Web server

Komunikaciona mrežaHTMLHTTP

Web browser

Web serverKomunikaciona mreža

PHP procesor

SQL server

Baza

podataka

Baza web stranica

i skriptova

Web browser

Web serverKomunikaciona mreža

PHP procesor

SQL server

Baza

podataka

Baza web stranica

i skriptova

HTML

PHPHTTP

Komunikacija browser-a i web servera kod dinamičkih sajtova

se realizuje nizom http request-response-ova.

Sada browser zahteva PHP stranicu, a kada web server to

detektuje, on se ne ponaša na isti način kao kada je tražena

HTML strana.

Server baze

podataka

Page 14: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Komunikacija

• Kada web server detektuje da se od njega zahteva php

stranica, on je ne isporučuje po default-u nego se aktivira

PHP procesor, koji je sastavni deo web servera

• Kada PHP procesor obradi PHP kod, svaka linija koda se

izvršava u skladu sa pravilima PHP-a, i kao rezultat obrade

se generišu klijentski jezici koji se šalju nazad browser-u

(HTML/CSS/JAVASCRIPT…), jer browser „ne razume“

PHP kod.

• Ukoliko se u PHP kod zahteva komunikacija sa bazom

podataka, onda se PHP procesor obraća serveru baze

podataka i konkretnoj bazi podataka na njemu. Po

obavljenoj komunikaciji, ako se tražio podatak iz baze, on

se integriše u rezultat rada procesora i isporučuje korisniku.

Page 15: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Baza podataka

• Server baze podataka i Baza podataka su nezavisni

server i celina za sebe. Ovim podacima ne mora da

pristupa samo jedan web server, nego može i više

različitih, a pored toga i drugi servisi, aplikacije, programi

i sl.

• Na jednom serveru baze podataka ima veliki broj baza

podataka, kao što jedan web server ima veliki broj

hostovanih web sajtova.

• PHP procesor se može obratiti serveru baze podataka

proizvoljno puno puta sa različitim zahtevima (upitima) i

na taj način menjati stanje podataka u bazi ili dobiti

podatke iz baze.

Page 16: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Do sada…

• Do sada su obrađeni klijentski jezici: HTML, CSS i

JavaScript, kao i JSON i XML

• Svi oni su bazni osnov za prikaz realizacije serverskih

jezika, koji će ih sada proširiti u mogućnostima primena,

optimizaciji koda i lakšem upravljanju kodom.

• Postoji veći broj serverkih jezika, koji imaju svoja pravila i

sintakse, ali je rezultat rada svakog od njih, ako je

namenjen prikazu u browser-u, manje više isti, jer se

realizuje klijentskim jezicima.

• Zato se u toku vežbi koristi XAMPP koji se na lokalnom

računaru može simulirati rad realnog web servera

Page 17: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

PHP• PHP je jedan od serverskih jezika

• Ekstenzije stranica sa PHP kodom su *.php

• Ekstenzija je obavezna ako se u stranici nalazi bilo koji red

PHP koda, jer samo tako server može da prepozna da se radi

o kodu koji on treba da interpretira pomoću PHP procesora.

• U tom smislu, ako se nema web server, bilo koji PHP kod se

neće intepretirati nego će se samo prikazati u originalu u

browser-u.

Page 18: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

PHP• PHP: Personal Home Page

• PHP: Hypertext Preprocessor

• Direktno se može upisuje u html kôd

• Prevodi se na serveru posebnim programom

• Prevodi se redosledom kojim je pisan

• Rezultat php kôda vraća se korisniku

• Server ne podržava php po default-u

• Prevodioci prevode kôd sa ekstenzijom htm, html, i php

• PHP-jezik je dosta sličan C, Javi i Perlu

• PHP syntax: C+Perl = PHP• Besplatan je i lakši od drugih script jezika

Page 19: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Napomena

• Često se dešava da u toku rada student napravi php stranicu, i

po navici klikne na nju da pogleda rezultat rada. Kako PHP nije

klijentski jezik, ovo nije moguće jer računar nije server i nema

softver koji ovaj kod može da obradi. Neophodno je stranicu

staviti u simulator servera, i tako je pokretati.

• Stavljanjem u simulator, u browser se mora kucati adresa tog

servera, pa putanja do stranice, npr.

127.0.0.1/pera_peric/index.php, a nikako struktura direktorijuma

na racunaru npr. C://sajtovi/pera_peric/index.php

• Ukoliko se neki php kod sačuna u HTML ekstenziji, sav kod će

se prikazati korisniku u browseru i neće se interpretirati od

strane servera.

Page 20: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Serverski / klijentski jezici

Page 21: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Browser - Server veza

Page 22: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

PHP i server

• Nakon dobijanja zahteva za stranicom *.php server

dati kod ne šalje odmah klijentu nego ga prvo

obrađuje pa šalje

• Obrada podrazumeva:

– Parsiranje (Sintaksna provera)

– Izvršavanje (Logička provera i prevođenje svake linije koda

u HTML)

– Ako nije bilo greške ni na jednom od procesa obrade,

klijentu se vraća čist HTML kod sa podacima koji su dobijeni

u obradi

Page 23: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Istorijat razvoja PHP-a

• PHP se prvo razvio pod imenom PHP/FI. PHP/FI i razvijen je od strane

Rasmus Lerdorf-a 1995.

– “Personal Home Page/ Forms Interpreter” - Prvo ime stabilne verzije

• Version 3: 1997

“PHP: Hypertext Preprocessor” – razvijen od strane Andi Gutmans i Zeev

Suraski

• Version 4: 2000 - Zend, sa svim svojim karakteristikama

– Podrška za update

– Verzija 4.4.6 u Martu, 2007.

• Version 5: 2004 –Object Oriented & database connectivity

– Version 5.2.1 Stable

• Version 6: 2005/2014 – PHP 6 and Unicode– Nikad zaživeo prakično I realizovan u praktičnim primenama

• Version 7: 2015 – PHP next generation (phpng)

Page 24: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Gde se može koristiti ?

Pravljenje brojača posetilaca sajta

Obradu web formulara, slanje e-pošte, tekstualnih fajlova ili baze podataka

Omogućavanje posetiocima sajta da otpreme fajl na server

Pravljenje kalendara

Pravljenje „mejling” lista

Pravljenje tzv. Shopping korpi i onlajn aukcija

Pravljenje mašina za pretraživanje web sajta

Pravljenje igara

Postavljanje vesti

Pravljenje web servisa

Autorizovan pristup sajtu

Omogućavanje korisnicima da prave i uređuju web stranice preko Interneta

Sprovođenje anketa ili glasanja na webu

Page 25: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Razlozi i uloga PHP-a

• Koristi se za generisanje sadržaja web strane u toku

izvršavanja

• Open source

• Ima podršku za SQL i NoSQL baze podataka

• Radi i pod Windows-om i pod Unix-om

• Ne zavisi od tipa i verzije browser-a

• Besplatan je

• Brz i siguran

• Ne zahteva nikakvo predznanje sem html-a, dok ASP

traži C# ili VB.net a CGI Perl

Page 26: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Zašto PHP

• Open source

• Besplatan

• Podržava ga Apache (open source)

• Podržava ga Zend engine sa objektnim

programiranjem

• Laka konekcija na baze podataka

(MySQL, Postgre, Oracle)

• Biblioteka funkcija

• Portabilan

Page 27: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Popularni PHP softveri

• Blog/ CMS: WordPress, PHP blog, Drupal, CMSimple, Joomla, PHP website, PHP(Reactor)

• School System: Moodle

• Forum: Prado, phpBB, Vanilla, BBPress

Page 28: WEB PROGRAMIRANJE PHP 1 - Висока ICT школа...Web programski jezici • Jedna od podela web programskih jezika je na klijentske i serverske. • Klijentski jezici su oni

Toliko za sada