Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


PHP skripta -web programiranje, Ispiti od Informatika

PHP skriptaPHP skriptaPHP skripta

Tipologija: Ispiti

2016/2017

Učitan datuma 13.12.2017.

marko_projovi
marko_projovi 🇸🇷

4.8

(8)

13 dokumenti

1 / 57

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
SKRIPTA IZ PREDMETA INTERNET TEHNOLOGIJE
PHP
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39

Delimični pregled teksta

Preuzmite PHP skripta -web programiranje i više Ispiti u PDF od Informatika samo na Docsity!

SKRIPTA IZ PREDMETA INTERNET TEHNOLOGIJE

PHP

SADRŽAJ

  • 1 Uvod
  • 2 PHP OKRUŽENJE..............................................................................................
  • 2.1 Razlika između server-side i client-side skripti...................................................
  • 3 OSNOVE PHP KODA
  • 3.1 Osnovna sintaksa, promenljive i operatori
  • 3.2 Promenljive, tipovi podataka, konstante.............................................................
  • 3.3 Funkcije..............................................................................................................
  • 3.3.1 Funkcije za upravljanje varijablama....................................................................
  • 3.4 Domen važenja promenljive...............................................................................
  • 3.5 Operatori.............................................................................................................
  • 3.6 PHP uslovne naredbe.........................................................................................
  • 3.7 PHP petlje...........................................................................................................
  • 3.8 Nizovi
  • 3.9 Rad sa stringovima.............................................................................................
  • 4 NAPREDNA SINTAKSA PHP KODA..................................................................
  • 4.1 Date....................................................................................................................
  • 4.2 Include and Require............................................................................................
  • 4.3 ObjektnoOrijentisanoProgramiranje u PHP........................................................
  • 4.4 PHP napredne funkcije za rukovanje fajlovima
  • 4.5 Superglobals.......................................................................................................
  • 4.6 Register globals..................................................................................................
  • 4.7 PHP napredne funkcije za rukovanje cookies...................................................
  • 4.7.1 Slanje header-a..................................................................................................
  • 4.9 PHP napredne funkcije za sesijama
  • 4.10 PHP napredne funkcije za upravljanje greškama
  • 5 UVOD U FORME...............................................................................................
  • 5.1 O formama uopšteno.........................................................................................
  • 5.2 Metode slanja i prihvatanja podataka................................................................
  • 5.3 Provera metode pristupa dokumentu / skripti.....................................................
  • 5.4 Forme i srpski znakovi........................................................................................
  • 5.5 Prikaz i obrada unutar jednog dokumenta..........................................................
  • 5.6 Elementi za unos podataka................................................................................
  • 5.7 Text box polje......................................................................................................
  • 5.8 Text area.............................................................................................................
  • radi na različitim platformama (Windows, Linux, Unix i td.)
  • kompatibilan je sa skoro svim serverima koji se danas koriste (Apache, IIS, itd. )
  • lak je za učenje i efikasno funkcioniše na strani servera.

Za PHP fajlove, bitne su sledeće činjenice:

  • mogu da sadrže tekst, HTML tagove i skripte
  • vraćaju se klijentskom browser – u kao HTML tekst ( plain HTML )
  • imaju ekstenziju: “. php ”, “. php3 ” ili “. phtml

Najpopularnija arhitektura u okviru koje se PHP koristi je WAMP (Windows/Apache/MySQL/ PERL/PHP). Windows je operativni sistem gde se instaliraju ostali elementi pomenute arhitekture. Apache je open source Web server, tako da se i na lokalnoj mašini uz pomoć Apache - a, može simulirati klijent/server okruženje. MySQL je open source server baze podataka koji podržava SQL ( Structured Query Language ) i idealan je kako za manje, tako i za veće baze podataka. Ako se PHP koristi u kombinaciji sa MySQL – om može se napraviti multiplatformska aplikacija, što znači da se može razviti u Windows okruženju, a da se potom koristi na npr. Unix mašinama.

PHP je bogat funkcijama za manipulisanje mnogo različitih tipova sadržaja. Od manipulisanja grafikom (png, jpg, flash…) do loado-vanja .NET modula i rada sa XML-om

Da bi se implementirala pomenuta arhitektura, neophodno je uraditi sledeće:

  • Download Apache Web servera^1 (i njegova instalacija na lokalnoj mašini).
  • Download MySQL^2 , server baze podataka i njegova instalacija na lokalnoj mašini.
  • (^) Download PHP^3 - i njegova instalacija na lokalnoj mašini.

Takođe treba napomenuti da je moguće gore navedene komponente skinuti u formi paketa koji sadrže sve pomenute komponente. Najpoznatiji paketi tog tipa su: EasyPHP 4 , WAMP^5 i XAMPP^6_._ Download i korišćenje ovih paketa je takođe besplatno.

Program koji se napiše u PHP-u ne zahteva prevođenje (kompajliranje), nego se interpretira pri svakom izvršavanju. PHP interpreter može raditi po CGI principu, odnosno tako što će interpreter postojati kao eksterna aplikacija koja se poziva da izvrši datu skriptu svaki put kad bude zahtevana od nekog korisnika, a može biti instaliran i kao modul veb-servisa. Druga varijanta je danas u najvećoj upotrebi jer pruža znatno veću brzinu izvršavanja - interpreter je na taj način uvek učitan u memoriju te se ne mora pozivati spoljašnji program.

Uobičajen scenario po kom se izvršavaju PHP skripte na web serveru je sledeći:

klijent (korisnik Interneta koji koristi neki brauzer) zahteva PHP stranicu sa servera server prosleđuje zahtev servisu za veb (program veb-server na serveru) veb-server prepoznaje da se traži PHP datoteka ne šalje njegov sadržaj klijentu, nego ga izvršava kao program pomoću PHP modula izlazni tekst programa (standardni izlaz) se šalje klijentu kao rezultat zahteva klijent prepoznaje vrstu rezultata (HTML kod, slika, PDF sadržaj, arhiva itd.) rezultat se prikazuju klijentu na odgovarajući način

(^1) http://httpd.apache.org/download.cgi (^2) http://www.mysql.com/downloads/index.html (^3) http://www.php.net/downloads.php (^4) http:///www.download.com/EasyPHP/3000-7957_4-10297309.html (^5) http://www.wampserver.org (^6) http://www.apachefriends.org/en/xampp.html

1. Razlika između server-side i client-side skripti

Server side skripte se izvršavaju na serveru kada server primi zahtev za obradom. Nakon zahteva server izvršava kod i na osnovu njega generiše HTML kod i šalje ga klijentu. To znači da stranica koja se prikazuje u pretraživaču klijenta ne postoji u tom obliku nigde na serveru odakle ju je klijent primio.

Glavni predstavnik client-side grupe jezika je JavaScript. Kod pisan u JavaScriptu je obično umetnut u HTML stranicu i izvršava se tek u klijentovom pretraživaču.

Osnovna razlika između PHP i HTML stranica je u načinu na koji web server upravlja njima.

Kada web serveru stigne zahtev za HTML stranicom, web server preduzima sledeće operacije:

  • Čita zahtev
  • Pronalazi stranicu na serveru
  • Šalje stranicu ka browser-u

Slika Obrada zahteva za HTML stranicom

Kada web server dobije zahtev za PHP stranicom, umesto slanja statičke HTML stranice, server preduzima određene akcije u skaldu sa PHP kodom:

  • Čita zahtev
  • Pronalazi stranicu na serveru
  • Obrađuje sve instrukcije koje se nalaze u PHP fajlu, in a taj način kreira ili modifikuje stranicu
  • Šalje novu stranicu ka browser-u

Slika Obrada zahteva za HTML stranicom

Server-side obrada omogućava:

  • (^) Smanjuje količinu saobraćaja između server i klijenta
  • Otklanja problem kompatibilnosti browser-a
  • Obezbeđuje različite tipove informacija za klijente
  • Poboljšava sigurnost aplikacije

Možda bi bilo najbolje malo detaljnije razmotriti razlike između njih na jednom trivijalnom primeru. Neka je na primer, potrebno napisati skriptu koja prikazuje tačno vreme negde na stranici. Iako ovo zvuči kao vrlo trivijalan i lagan primer, gotovo ga je nemoguće izvesti. Zašto? Prvo pitanje koje treba postaviti je 'Koje je vreme tačno vreme?'. Ono na serveru ili ono na klijentovom računaru? Ove dve skripte će retko kada prikazati isti rezultat.

Primer 1 – prikaz vremena kod klijenta

Primer outputa Zdravo svete

Kao što iz primera vidi, svaka linija PHP koda mora da se završi tačkom – zarez. Tačka – zarez se koristi da bi se jedan set instrukcija razdvojio od drugog seta. Postoje dve osnovne komande koje služe za prikazivanje teksta na browser – u: echo i print^7. Kao što je već rečeno, PHP kod se nalazi u okviru HTML koda i izvršava se na serveru. Tek kada se PHP kod izvrši na serveru, output se šalje do browser - a klijenta koji izvršava HTML kod i prikazuje PHP kod koji je već izvršen na serveru,tj. prikazuje i rezultat PHP koda i rezultat HTML koda. Ako se na primer u PHP skripti koristi komanda echo “”, dešava se sledeće:

  • Web server izvršava echo “” kod.
  • Rezultat tog koda će biti .
  • Zatim, Web server šalje browser – u klijenta izvršeni kod.
  • Kada browser klijenta vidi ,kao rezultat PHP koda koji treba da prikaže, razumeće da je rezultat PHP koda ustvari HTML kod koji browser treba da izvrši. Browser će izvršiti HTML kod i konkretno u ovom primeru, kursor će preći u sledeći red.

Pomoću echo naredbe u PHP skriptama, mogu se pisati bilo koji HTML kodovi koje browser treba da izvrši.

Unutar koda je moguće prebaciti se, u bilo kojem trenutku, iz HTML moda u PHP mode. Cak i unutar if, for i ostalih kontrolnih struktura. Ovo omogućuje rad sa template-ima u kojima se na isti način prikazuju različiti podaci iste strukture. Ovo je Ilustrovano jednostavnim primerom:

Primer 5

Untitled

(^7) Razlika između ove dve funkcije je samo u tome što funkcija print može da vrati vrednost true/false, a echo nema tu mogućnost. Echo je za nijansu brža pri izvršavanju programa

Rezultat gornjeg koda je:

Marko Markovic

Za ispis sadržaja varijable korišćena su dva različita načina koji su rezultirali istim krajnjim ispisom. Naime unutar se nalazi php kod koji će se izvršiti ukoliko se u njemu ne nalaze neke sintaksne greške. Druga metoda ispisa je izgledala ovako : . Ova metoda se koristi kada je potrebno ispisati neku varijablu ili string. Ova linija je identična samo što je umesto echo naredbe korišćen znak = koji PHP-u govori da ispiše ono što se nalazi između oznaka.

Kao što i u HTML – u postoje komentari, tako se komentari mogu navoditi i u PHP bloku. Postoje dve osnovne vrste komentara u PHP – u: jednolinijski ( single – line comment ) i višelinijski ( large comment block ) komentari. Za jednolinijske komentare se koristi symbol “ //” , a za višelinijski komentari se pišu između “ /* “ i “ */ ” simbola. Sledi primer.

Primer 6

Primer PHP komentara

2. Promenljive, tipovi podataka, konstante

Promenljive (varijable) se u PHP – u koriste za čuvanje konkretnih vrednosti kao npr. tekst stringova, brojeva ili nizova. Kada se jednom promenljiva postavi, ona se može koristiti više puta u PHP skripti. Sve varijable u PHP – u počinju simbolom dolar simbolom “ $ “. Pravilno postavljena (setovana) promenljiva ima sledeću sintaksu:

$ime_promenljive=vrednost; U PHP – u promenljiva ne mora da se deklariše pre nego što se postavi, što znači da ne mora da se navede tip promenljive kao u drugim programskim jezicima. U PHP – u se promenljive automatski deklarišu kada se koriste.

Postoje neka pravila za dodeljivanje imena promenljivima koja moraju da se poštuju:

  • Ime promenljive mora početi slovom ili doljnom crtom “ _ “.

3. Funkcije

Funkcije u PHP-u se definišu sledećom sintaksom:

Primer 8

Primer 9 : Funkcije sa povratnim rezultatom:

U gornjem primeru su umesto varijabli $br1 i $br2 korišćene i varijable imena $broj1 i $broj2. Ovo je moguće zato što se funkciji ne daju same varijable već njihove vrednosti koje se čuvaju u lokalnim (funkcijske) varijablama koje postoje samo za vreme izvođenja funkcije. Ukoliko je potrebno funkcijom izmeniti sadržaj neke varijable, ona se mora dati funkciji pomoću reference (pass by reference). Ne postoji oznaka za referencu u ovom slučaju pri pozivu funkcije. Sama postavka funkcije čini da se varijabla daje funkciji pomoću reference. U ovom slučaju je korišćeno davanje varijable pomoću reference u liniji povecaj ($neki_broj,10).

Primer 10 : Slanje varijabli pomoću reference

Nije obavezno koristiti isto ime varijable u glavnom programu i funkciji, iako je moguće. Rezultat će u oba slučaja biti isti.

Primer 11 : Funkcije sa default vrednostima

function frizider($stanje="pun"){ echo "Frizider je $stanje";

} // ispis default vrednosti frizider(); echo ""; // ispis date vrednosti frizider("prazan"); ?>

Rezultat : Frižider je pun

Frižider je prazan

Pri radu sa funkcijama koje imaju default vrednost bitno je da ta vrednost mora biti konstanta (string ili broj). Isto tako ukoliko funkcija ima više argumenata od kojih jedan ili više imaju default vrednosti oni moraju biti sa krajnje desne strane liste argumenata iza argumenata bez default vrednosti:

Primer 12

3.1.. Funkcije za upravljanje varijablama

Php poseduje niz ugrađenih funkcija za rad sa varijablama:

gettype()

Ova funkcija vraća vrednost tipa promenljive. Moguće vrednosti:

  • "double"
  • "string"
  • "array"
  • "object"
  • "class"
  • "unknown type"

settype()

Funkcija postavlja vrednost tipa podataka:

  • array,
  • double, integer,
  • object
  • string.

Ako se definiše varijabla kao static u nekoj funkciji, ona se inicijalizuje prilikom prvog poziva funkcije i postavlčja na definisanu vrednost. Svaki sledeći poziv funkcije neće dovesti do nove inicijaliizacije.

5. Operatori

Operatori koji se koriste u PHP script programskom jeziku:

Aritmetički operatori

Operator Opis Primer Rezultat

  • Sabiranje x= x+
  • Oduzimanje x= 5-x
  • Množenje x= x*

/ Deljenje 15/ 5/

% Moduo 5% 10% 10%

++ Uvečanje za 1 x= x++

x=

-- Smanjenje za 1 x= x--

x=

Operatori dodele

Operator Primer Je isto kao i = x=y x=y += x+=y x=x+y -= x-=y x=x-y = x=y x=x*y /= x/=y x=x/y

%= x%=y x=x%y

Operatori poređenja

Operator Opis Primer == Jednako kao 5==8 vraća false != Nije jednako kao 5!=8 vrača true > Veće od 5>8 vraćafalse < Manje od 5<8 vraća true >= Veće ili jednako od 5>=8 vaća false <= Manje ili jednako od 5<=8 vraća true

Logički operatori

Operator Opis Primer && I – konjukcija. Konjukcija je tačna ako i samo ako su oba iskaza tačna.

x= y= (x < 10 && y > 1) vraća true || ILI – disjunkcija. Disjunkcija je tačna ako i samo ako je jedan od iskaza tačan.

x= y= (x==5 || y==5) vraća false ! Negacija x= y= !(x==y) vraća true

Cast operatori

Cast operatori u PHP su:

  • (int) ili (integer) pretvaranje u integer
  • (float) ili (real) pretvaranje u real
  • (string) pretvaranje u tip string
  • (bool) ili (boolean) u tip boolean
  • (array) pretvaranje u tip array
  • (object) pretvaranje u tip object

Primer 13 : PHP primer sa operatorima

Primer sa operatorima

$y) || ($y>$z); echo $promenljiva; // ovde se se vraca rezultat 1, jer je iskaz true $promenljiva1=($x!==$y) && ($z<=$y) && ($y!==105); echo $promenljiva1; // ovde se ne vraca rezultat, jer je iskaz false

// naredbe koje se izvršavaju ukoliko je uslov == false i uslov2 == false i uslov == true } else { // naredbe koje se izvršavaju ukoliko su svi uslovi == false } ?>

Primer 17

Primer elseif uslovne naredbe

30 && $promenljiva<=45) { echo "Broj je veci od 30, a manji ili jednak 45"; } else { echo "Broj je veci od 45"; } ?>

Ukoliko treba da se izvrši jedan ili više blokova programskog koda, koristi se switch naredba. Switch naredba se koristi zbog izbegavanja velikih blokova programskog koda if … elseif … else naredbi. Sintaksa:

switch (promenljiva) { case slučaj1:

kod koji se izvrsava ako je promenljiva = slučaj1 ;

break; case slučaj2: kod koji se izvrsava ako je promenljiva=slučaj2; break; case slučaj3: kod koji se izvrsava ako je promenljiva=slučaj3; break; default: kod koji se izvrsava ako vrednost promenljive nije jednaka ni jednom navedenom slučaju; }

Primer 18: Primer switch naredbe

Primer switch naredbe

php $x=10; switch($x) { case 1: echo "Broj je 1";

break; case 10: echo "Broj je 10"; break; case 20: echo "Broj je 20"; break; default: echo "Ne znam koji je broj"; } ?>

Ključna reč break označava završetak grane. Ukoliko se izostavi između dve grane naredbe, obe grane će se izvršiti ukoliko je viša (ona koja sledi pre) aktivirana. Naredbe će se izvršavati sve dok se ne pojavi break ili završetak switcha.

Primer 19

7. PHP petlje

Često se dešava da je potrebno određeni kod izvršiti više puta. Da bi se ovo postiglo, bez suvišnog kucanja, koriste se petlje. U PHP – u se koriste sledeće petlje:

  • while – određeni kod se izvršava sve dok je zadati uslov true.
  • do ... while – određeni kod se izvršava jednom i onda se u okviru petelje ponovo izvršava sve dok je specijalni uslov true.
  • for – kod se kroz petlju izvršava onoliko puta koliko je to korisnik odredio
  • foreach – kod se kroz petlju izvršava za svaki element niza While naredba će izvršavati blok koda ako i dok je uslov true. Sintaksa:

while(uslov)

programski kod koji se izvršava;

Primer 29 :

Primer while naredbe

php

8. Nizovi

Kao što je poznato, u nizovima se čuvaju vrednosti elemenata koji su istog tipa i koji su slični na neki način. Ti elementi se zovu elementi niza i svaki element ima svoj jedinstven ID ( Identifier ) i može mu se lako pristupiti. Postoje tri tipa nizova:

  • Numerički niz, gde elementi imaju numeričke ID ključeve
  • Asocijativni niz ( associative array ), gde je svaki ID ključ asociran sa vrednošću, tj. postoji par ključ=>vrednost ( key=>value )
  • Multidimenzioni nizovi ( multidimensional array ), niz koji se sastoji od jednog ili više nizova.

Element niza može pripadatai bilo kom tipu podataka, bez obzira na ostale elemente.

U PHP – u, numerički nizovi se mogu kreirati na dva načina:

  • Automatskim dodeljivanjem ID ključeva, npr. : $niz=array (“Marko”,”Petar”,”Srdjan”,”Djura”). U ovom primeru, Identifikator (ID) elementima niza je automatski dodeljen, pa tako Marko ima ID=0, Petar ID=1 itd.
  • Ručnim dodeljivanjem ID ključeva, npr.

$niz=array(); $niz[0]=”Marko”; $niz[1]=”Petar”; $niz[2]=”Srdjan”; $niz[3]=”Djura”;

Primer 32

Primer numerickih nizova

Kod asocijativnih nizova ( associative arrays ), svaki ID ključ je asociran sa određenom vrednošću. U PHP – u, asocijativni nizovi se mogu kreirati na dva načina:

  • (^) Dodeljivanjem ID ključeva i vrednosti svim elementima niza odjednom, npr. $niz=array (“Marko”=>32,“Petar”=>28,“Srdjan”=>20, “Zdravko”=>56). U navedenom primeru, ključevi su imena, a brojevi su vrednosti.
  • Dodeljivanjem ID ključeva i vrednosti svakom elementu niza posebno, npr.

$niz=array(); $niz[“Marko”]=32; $niz[“Petar”]=28;

$niz[“Srdjan”]=20; $niz[“Zdravko”]=56;

Primer 33: Primer asocijativnih nizova:

Primer asocijativnih nizova

"crvena","kruska"=>"zuta","tresnja"=>"crvena","pomorandza"=>"nar andzasta"); echo $niz["jabuka"]; // rezultat ce biti crvena echo ""; // prelazak u novi red uz pomoc HTML koda echo $niz["pomorandza"]; // rezultat ce biti narandzasta ?>

Kod multidimenzionih nizova, svaki element može da bude nov niz i svaki element pod – niza takođe može da bude niz itd.

Primer 34 : Primer multidimenzionih nizova:

Primer multidimenzionih nizova

array ( "Marko", "Pedja", "Marina" ), "Petrovic"=>array ( "Milena", "Marko", "Jovana" ), "Stankovic"=>array ( "Petar", "Jasmina", "Milica", "Isidora" ) ); echo $porodice["Jovanovic"][1]. " ". "je clan porodice Jovanovic"; // ispisace se da je Pedja clan porodice Jovanovic ?>