Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

POGLAVLJE 1

UVoD U PHP 7
PHP je popularan jezik za pisanje skriptova osnovne namene, koji je posebno pogodan za
razvoj web aplikacija. Brz, fleksibilan i pragmatian, PHP pokree sve - od bloga do najpopularnijih web sajtova na svetu. www.php.net

Ciljevi u ovom poglavlju/Ishodi uenja studenta


Nakon zavretka ovog poglavlja, student e moi da:

razume razliku izmeu LAMP-a, WAMP-a i MAMP-a

uspeno instalira verziju LAMP-a, WAMP-a ili MAMP-a

potrai na Internetu reenje problema

objasni razliku izmeu programskog jezika i jezika za pisanje skriptova

kreira jednostavan PHP program bez greke

PHP 5.5+, PHP 7+ i PHP.neT


PHP (Hypertext Preprocessor) je jedan od najpopularnijih jezika koji se koriste za razvoj web
aplikacija. On omoguava programeru da brzo razvije dobro formirane programe bez greke,
koristei tehnike proceduralnog i objektno-orijentisanog programiranja. Obezbeuje
mogunost upotrebe mnogih postojeih biblioteka koda koje su ukljuene u osnovnu instalaciju ili mogu da se instaliraju unutar PHP okruenja. To korisniku prua mogunost da izvri
odreeni zadatak na vie naina. PHP obezbeuje veu fleksibilnost od mnogih drugih jezika.
Lakoa dodavanja biblioteka koda u okruenje je jedna od glavnih prednosti i ono to PHP ini
popularnim.
Proceduralni jezik Proceduralni programski jezik ukljuuje funkcije/metode koji
mogu da se pozovu iz glavnog toka programa. Tok programa preskae na funkciju/
metod, izvrava kod unutar modula, a zatim se vraa na sledei iskaz u glavnom toku
programa. Neki proceduralni jezici ukljuuju glavnu funkciju/metod koji je automatski pozvan kada je program izvren.

POGLAVLJE 1 Uvod u PHP 7

Objektno-orijentisani jezik Objektno-orijentisani jezik koristi klase i objekte. Klase


su sline nacrtima. Klasa opisuje ta objekat moe da sadri, ukljuujui parametre/
promenljive i funkcije/metode. Objekat je primer klase (kao zgrada koja je kreirana iz
nacrta). Objektno-orijentisani jezik obezbeuje polimorfizam, kapsuliranje i nasleivanje. Objekti su prirodno kapsulirani, tako to sadre sve srodne funkcije/metode
i parametre/promenljive unutar samog objekta. Polimorfizam omoguava dupliranje
naziva metoda/funkcija unutar objektno-orijentisanih objekata. Meutim, potpis
mora da bude drugaiji. On je kombinacija vrsta promenljivih (brojeva i karaktera)
koje su prosleene u metod/funkciju i vrste informacije koja je prosleena metodu/
funkciji. Na primer, moe da se kreira nekoliko metoda add jedan koji prihvata samo
cele brojeve, jedan koji prihvata samo brojeve sa pokretnom takom (brojeve sa decimalom) i jedan koji prihvata kombinaciju. Program e odrediti koji metod/funkciju da
pozove po onome to je prosleeno u metod/funkciju. Nasleivanje u objektno-orijentisanom programiranju omoguava da objekat nasledi parametre/promenljive i
funkcije/metode iz drugog objekta. Objekat takoe moe da prepie ove nasleene
stavke. To je slino detetu koje nasleuje karakteristike svojih roditelja. Objektno-orijentisani jezici takoe mogu da budu upravljani dogaajima. Program upravljan dogaajima e spavati dok se dogaaj ne desi. To je slino programu ATM maine koja
eka da korisnik unese ATM karticu.
PHP je jezik otvorenog koda. Svaka verzija jezika je kreirana koristei unos od samih
programera. To omoguava da jezik, vremenom, napreduje i kree se u pravcu u kojem
ga pokreu korisnici. Od svog prvog izdanja u 1995. godini kao Personal Home Page
Tool (PHP) (od Rasmusa Lerdorfa), verzije su izdavane na Internetu kroz forume, to
omoguava korisnicima da daju svoje predloge i da, ak, unesu promene u kodu ili
dodatke. Danas se zvanini PHP web sajt nalazi na adresi www.php.net.
Jezik otvorenog koda To je programski jezik otvorenog koda je razvila zajednica
zainteresovanih korisnika. Zajednica prihvata unose od prijatelja programera za preporuene nadgradnje i ispravke. Nekoliko lanova zajednice rade zajedniki na predstavljanju predloga i ispravljanju greaka u jeziku. Jezici otvorenog koda su besplatni.
Jezike koji nisu otvorenog koda (kao to je Microsoft C#) kreira i aurira kompanija ili
glavna organizacija. Jezici koji nisu otvorenog koda obino nisu besplatni.

PHP 5.5+, PHP 7+ i PHP.NET

Slika 1-1 PHP.NET (24.09.2015.)


Na poetnoj stranici web sajta www.php.net nalaze se informacije o svakom najnovijem izdanju
jezika. Takoe su obezbeene informacije o buduim izdanjima, buduim planovima za odreena izdanja i planiranim datumima za izdavanje. Pored toga, ovde ete pronai i druge sline
informacije o PHP-u, ukljuujui linkove i informacije za PHP savete.

Slika 1-2 Ukljuite se (24.09.2015.)

POGLAVLJE 1 Uvod u PHP 7

Kao to je pomenuto, ovaj web sajt prua mogunost korisnicima da pomognu u buduem
razvoju jezika. Korisnici mogu da se ukljue u testiranje beta verzija i da izvetavaju o grekama
u programima. Posetioci takoe mogu da pregledaju dokumentaciju u vezi sa razvojem moguih
buduih verzija. To je dobar nain otkrivanja buduih poboljanja ili bezbednosnih ispravki pre
objave za publikovanje.

Slika 1-3 Stranica za preuzimanje (24.09.2015.)


Stranica za preuzimanje obezbeuje, kao to i pretpostavljate, lak pristup najnovijim verzijama
jezika. Meutim, kao to ete videti, dostupan je samo jezik. Uobiajeno je, i preporuljivo,
da korisnici koji su poetnici upotrebe WAMP ((Windows, Apache, MySQL, PHP), LAMP
(Linux, Apache, MySQL, PHP) ili MAMP (Mac, Apache, MySQL, PHP) paket za poetnu
instalaciju. Ovi paketi (koje emo opisati kasnije) omoguavaju laku instalaciju vie proizvoda
istovremeno. Ako ne upotrebite ove pakete, treba da pokrenete vie posebnih instalacija, to
moe postati komplikovano, a vea je mogunost pojave greke ako se instaliraju nekompatibilne verzije.
WAMP/LAMP/MAMP Kombinacija otvorenog koda (besplatna) ukljuuje Apache
Web Server, MySQL i PHP za specifian operativni sistem (Windows, Linux i Mac).
Ovi paketi su otvorenog koda. Kombinacija softvera se koristi za kreiranje dinaminih
web sajtova i web aplikacija.

PHP 5.5+, PHP 7+ i PHP.NET

Slika 1-4 Stranica za dokumentaciju (24.09.2015.)


Jedna od najvanijih stranica PHP web sajta je stranica za dokumentaciju. Ona omoguava
korisnicima da potrae opise i funkcije samog jezika. Takoe moete da preuzmete kompletnu
dokumentaciju. Meutim, poto je ovo ivi sajt, u kojem je mogua pojava greke, najbolje je
da najaktuelnije informacije preuzmete direktnim pristupom sa web sajta.

Slika 1-5 Uputstvo (11.11.2014.)

POGLAVLJE 1 Uvod u PHP 7

Moete da upotrebite uputstvo isto kao da to biste upotrebili i knjigu, tako to ete kliknuti na
link na poetku stranice. Ograniena koliina informacija koja je obezbeena u svakom odeljku
uputstva moda e podstai poetnika da odustane od programiranja i usmeri svoje interesovanje na neto lake, kao to je umreavanje. Uputstvo prua odlian vodi za iskusne programere,
poto je sintaksa jezika slina drugim jezicima, kao to su JavaScript, Perl i Java.

Slika 1-6 Pretraga (11.11.2014.)


Na bilo kojoj stranici web sajta korisnik moe da unese termin, izraz ili, ak, naziv funkcije
da bi pronaao vie informacija. Kada je informacija uneta u polje za pretragu, web stranica e
ispod polja prikazati korisniku jednu ili vie opcija, od kojih moe jednu da izabere.

PHP 5.5+, PHP 7+ i PHP.NET

Slika 1-7 Eho (11.11.2014.)


Kada je korisnik izabrao opciju (kao to je eho koji je prikazan na slici 1-7), rezultati pretrage
obezbeuju korisniku osnovni opis traene stavke, unose ili ispise za funkciju (parametre) i
primer koda.

Slika 1-8 Echo kod (11.11.2014.)

10

POGLAVLJE 1 Uvod u PHP 7

Primer koda obezbeuje objanjenje upotrebe unutar samog koda pomou komentara (na slici
1-8 predstavljeni su karakterima // i zlatnom bojom). Komentari nisu izvrni kod. Izvrni kod je
oznaen bojom za isticanje nizova (crvenom), promenljivih (plavom), kljunih rei (zelenom) i
PHP poetnih i zavrnih tagova (plavom). Kodiranje u boji pomae da kod bude itkiji. Takoe
je lake pronai greke u sintaksi kada kreirate programe. Mnogi PHP editori obezbeuju sline
kolorne eme.

PHP 5.6+ i PHP 7+


U izdanje PHP 7 okruenja dodata su odlina poboljanja. U verziji PHP 5.5+ je dramatino poboljana bezbednost. U ovoj knjizi mi emo upotrebiti najnoviju PHP alatku za enkripciju password
hash, umesto alatke MD5, koja se koristi u mnogim aktuelnim knjigama. U poslednjih nekoliko
godina alatka MD5 se pokazala kao ranjiva na napade hakera.
PHP 7 je zasnovan na PHPNG projektu (PHP Next-Gen), koji vodi Zend za ubrzanje
PHP aplikacija. Poboljanje performansi ostvareno iz PHP-a 7 je ogromno i varira
izmeu 25 i 70 odsto od aplikacija u realnom svetu, i sve to samo nadgradnjom PHP-a,
bez potrebe da menjate i jednu liniju koda! www.zend.com
PHP 7 takoe zamenjuje fatalne greke, koje su prethodno zaustavljale program, sa izuzecima
kojima moe da se rukuje unutar samog programa.
Ako prelazite sa prethodne verzije PHP-a na PHP 7, pogledajte sledei link
http://php.net/manual/en/migration70.php
Kod koji je upotrebljen u primerima u ovoj knjizi je kompatibilan sa verzijom PHP 7.
Veina primera je, takoe, kompatibilna sa verzijama PHP 5.5 i PHP 5.6.

Uradite
1. Otvorite stranicu www.php.net. Potraite informaciju o funkcijama print i printf. Po
emu su ove funkcije sline? Po emu se razlikuju?
2. Kako spajate tim i pomaete u kreiranju sledee verzije PHP-a? Nagovetaj:
Otvorite odeljak Get Involved na web sajtu www.php.net, selektujte Guide for
Contributors, a zatim potraite link Join the team. Naravno, web sajt se menja, pa
moda treba da pronaete drugu putanju za ovu informaciju.
3. Kako moe web sajt www.php.net da bude koristan za poetnike u PHP
programiranju?
4. Koji jezik je upotrebljen za kreiranje PHP-a? Nagovetaj: Odgovor se nalazi na web
sajtu www.php.net.
5. Otvorite stranicu www.php.net. U verziji PHP 7 potraite listu poboljanja i promena,
koje treba, potom, da izlistate. Koja poboljanja i promene utiu na poetniki nivo
programiranja?

PHP, JavaScript, CSS, HTML i Apache web server

11

PHP, JavaScript, CSS, HTML i Apache web server


PHP je jezik za pisanje skriptova. Jezik za pisanje skriptova je drugaiji od aktuelnog programskog jezika. Programske jezike (kao to je Java) pisali su programeri u sintaksi slinoj engleskom jeziku. Program je preveden, to znai da je konvertovan iz engleske sintakse u mainski
kod (nule i jedinice). Ovaj kod se, zatim, izvrava (pokree) unutar kompatibilnog operativnog
sistema i hardvera. Jezici za pisanje skriptova ne koriste prevodilac. Kada se prvi put pristupi
kodu, on je interpretiran liniju po liniju, dok se program izvrava.
Moda se pitate da li e to izazvati da kod bude sporiji od prevedenog koda. Nee. Kada je kod
jednom izvren, prevedeni kod ostaje u memoriji raunara ili servera za sledea izvrenja. Ako
programer promeni kod, nova verzija e zameniti prethodnu u memoriji.
JavaScript je takoe jezik za pisanje skriptova. Kao to, verovatno, i pretpostavljate, JavaScript
kod moe da se vidi unutar web pretraivaa pregledanjem izvora, kao to je prikazano na slici
1-9.

Slika 1-9 JavaScript, HTML i CSS kod sa sajta yahoo.com (11.11.2014.)


Izvorni kod prikazan na slici 1-9 je sa sajta www.yahoo.com, a prikazuje kombinaciju nekoliko
jezika, ukljuujui HTML, CSS i JavaScript. JavaScript kod (prikazan crnom bojom) se nalazi
izmeu tagova skripta (<script type=text/JavaScript> i </script>). On e pokuati da kreira
kolai na vaoj maini ako pretraiva omoguava upotrebu kolaia.

12

POGLAVLJE 1 Uvod u PHP 7

Slika 1-10 Izvorni kod web sajta www.php.net (11.11.2014.)


Meutim, kada pogledamo izvorni kod web sajta www.php.net (na slici 1-10), ne moemo da
vidimo kod PHP skripta. Postoje neki linkovi ka nekim PHP fajlovima, ali nije prikazan PHP
kod. Zato?
JavaScript kod se nalazi na raunaru korisnika. On je interpretiran i izvren unutar pretraivaa.
PHP kod se nalazi na web serveru. Njega je interpretirao i izvrio web server, a ne pretraiva.
Rezultati izvrenja PHP koda su vraeni u pretraiva, a ne u sam kod.
<?php
Print "Hello";
?>

Napomena
Moda ste primetili druge formate za upotrebu PHP-a (kao to su: <%, <%=, %> ili <script language=php>);
u verziji PHP 7 ovi stilovi vie nisu validni. Oni su ranije iskljueni, ali su i dalje upotrebljivi.

Moda ste pogodili da e ovaj kod prikazati Hello. Iako je to tano, pitanje je koji procesi se
deavaju za kreiranje ovog rezultata.
Ako je ovaj kod postavljen u fajl (kao to je hello.php) na web serveru, upotrebite web pretraiva da zatraite taj fajl, tako to ete uneti njegov naziv i lokaciju u polje za URL (adresu), kao
to je http://servera.com/hello.php. Uneta adresa daje instrukcije pretraivau da poalje HTTP
Get zahtev web serveru (server.com) za vraanje web stranice (hello.php).

PHP, JavaScript, CSS, HTML i Apache web server

13

Slika 1-11 Zahtevanje HTML/JavaScript web stranice


Web server koji prima zahtev odredie da PHP kod prvo treba da bude interpretiran i izvren.
On odreuje ovaj proces, jednostavno traei ekstenziju fajla (.php) za traeni fajl. Sav PHP kod
unutar fajla je nakon toga poslat PHP procesoru za interpretaciju i izvrenje. Rezultati izvrenja
koda su vraeni web serveru, koji ih alje (i sve ostale HTML i/ili JavaScript kodove) nazad
u pretraiva. U ovom primeru Hello e biti vraen i prikazan u pretraivau. Ako pogledate
izvorni kod, videete samo re Hello. Neete videti HTML ili PHP. Zato? Zato to nismo
poslali HTML nazad u pretraiva.

Slika 1-12 Zahtevanje web stranice pomou PHP koda


Moda se pitate da li moete da upotrebite ovaj proces da biste poslali nazad aktuelni HTML (i/
ili JavaScript) kod za kreiranje dinamike web stranice. Moete. PHP funkcija print e vratiti
svaki HTML (ili JavaScript) kod koji je postavljen izmeu navodnika (). Pretraiva e prevesti kod koji je web server vratio.
Funkcija print - Funkcija print nije funkcija. To je konstrukcija jezika. Funkcije zahtevaju da nizovi budu ukljueni izmeu navodnika kada se prosleuju. Konstrukcije
jezika ne zahtevaju navodnike oko nizova. Ipak je preporuljiva njihova upotreba.
Funkcija print e proslediti pretraivau ta god je njoj prosleeno. Pokuae da konvertuje sve stavke koje nisu niz u format niza (tekst), poto su sve stavke prikazane
unutar web stranice u tekstualnom formatu.
Za vie informacija posetite stranicu
http://php.net/manual/en/function.print.php.
Za detaljniji opis komande print posetite besplatni The New Boston (thenewboston.
com) video na adresi
https://www.thenewboston.com/videos.php?cat=11&video=16996.

Napomena
Sve linkove koji su obezbeeni u ovoj knjizi moete da pronaete na adresi http://www.littleoceanwaves.com/
securephp.
<?php
Print "<h1>Hello</h1>";
?>

14

POGLAVLJE 1 Uvod u PHP 7

Ako promenimo kod na prethodno prikazanu listu, pretraiva e prikazati Hello kao HTML
zaglavlje (h1). Mana upotrebe funkcije print je to program nee imati kontrolu nad lokacijom
prikaza iskaza na web stranici. Iskaz e, u stvari, biti prikazan kao prva linija koda, ak ispred
svih ostalih postojeih HTML tagova. To je moda u redu ako samo vraate iskaz korisniku, kao
to je Your process has been completed. Meutim, to moda nije prihvatljivo ako je cilj da
formatirate ispis na odreenu lokaciju na stranici. Postoje druge tehnike i funkcije koje moemo
izabrati i eliminisati ovaj problem. Meutim, one nisu predmet razmatranja u ovoj knjizi.
Sada, kada znamo da moramo da prevedemo i izvrimo PHP kod pomou web servera, koji
server bi trebalo da upotrebimo?
Apache web server koji se najee koristi za hostovanje i rukovanje zahteva PHP web stranica.
Kao i drugi web serveri, Apache takoe moe da prihvati i vrati zahteve za druge vrste fajlova,
ukljuujui HTML, JavaScript, PERL, slike i RSS dokumente. On, kao to je reeno, odreuje
koji procesi treba da se izvre iz HTTP zahteva, tako to prvo pogleda ekstenziju fajla traenih
fajlova.

Slika 1-13 Apache.org web sajt (24.09.2015.)


Apache je, kao i PHP, proizvod otvorenog koda. Svim promenama na Apache serveru rukovodi
Apache Software Foundation. ASP odrava web sajt apache.org pomou kojeg je korisnicima i
programerima omogueno da otkriju projekte koji su trenutno u razvoju i da preuzmu najnovije
verzije Apache servera. Meutim, kao to je ve reeno, preuzimanje posebnih verzija PHP-a,
Apachea i MySQL-a moe izazvati probleme, zbog nekompatibilnih verzija. Mnogo je jednostavnije da preuzmete kompletne WAMP, LAMP ili MAMP verzije ako niste sasvim sigurni u
ono to radite.

PHP, JavaScript, CSS, HTML i Apache web server

15

Slika 1-14 Get Involved stranica Apache web sajta (24.09.2015.)


Apache Software Foundation takoe podstie korisnike svojih proizvoda da auriraju proizvode
i ukljue se u razvoj buduih proizvoda. Korisnici mogu da se prikljue diskusiji i e-mail grupama, da testiraju nova izdanja i da, ak, pomognu u reavanju problema ili dodavanju novih
funkcija u proizvode.

Uradite
1. Koja je razlika izmeu izvravanja PHP koda i Java koda?
2. Koja je razlika izmeu jezika za pisanje skriptova i programskog jezika? Koja vrsta
jezika je PHP?
3. Kako Apache web server rukuje zahtevima za PHP web stranicu?
4. Zato moemo da vidimo JavaScript kod unutar web pretraivaa, ali ne moemo da
vidimo PHP kod?
5. Otvorite stranicu www.apache.org. Nabrojte neke od naina na koje moete da se
ukljuite u razvoj Apache projekata, ak i ako imate ogranieno iskustvo.

16

POGLAVLJE 1 Uvod u PHP 7

PHP, Apache i MySQL


ta se deava kada web stranica zahteva informaciju iz baze podataka?
Obino, baze podataka se nalaze na serverima koji su odvojeni od samog web servera.
Da li zahtev za podatke dolazi sa web servera ili iz PHP procesora?
Poto su SQL iskazi sadrani unutar samog PHP koda, PHP procesor alje SQL iskaze u Database Management System (MySQL) na obradu.

Slika 1-15 Zahtevanje PHP web stranice koja vraa informaciju iz MySQL baze podataka
SQL - Structured Query Language je specijalni jezik koji se koristi za auriranje, ubacivanje ili brisanje podataka iz DBMS-a (Database Management System). DBMS je
aplikacija koja stupa u interakciju sa programskim jezikom i bazom podataka da bi
aurirala, ubacila ili izbrisala podatke. DBMS koristi SQL za prevoenje potrebnih
promena u podacima unutar baze podataka. Za vie informacija o SQL-u pogledajte
stranicu http://en.wikipedia.org/wiki/SQL, a za vie informacija o DBMS-u stranicu
http://en.wikipedia.org/wiki/Database.
Apache server e prvo otkriti da PHP kod mora da bude preveden. PHP kod e tada biti poslat
u PHP procesor, koji ga prevodi (liniju po liniju). Dok se kod prevodi, procesor e otkriti da
SQL iskazi moraju da budu izvreni uporeivanjem sa bazom podataka. SQL iskazi se, zatim,
prenose do odgovarajueg Database Management Systema (DBMS-a) na obradu. DBMS e
vratiti rezultate izvrenja SQL iskaza u PHP procesor. PHP procesor e upotrebiti te rezultate za
formatiranje ispisa koji e biti prosleen Apache serveru. Apache server e, zatim, kombinovati
rezultate koje je vratio PHP procesor sa bilo kojim drugim HTML (i/ili JavaScript) kodom koji
se nalaze na originalnoj traenoj stranici i vratiti ceo ispis u pretraiva na maini korisnika.
Pretraiva e tada prevesti HTML i JavaScript i prikazati rezultate traene stranice.
Da li ste sve razumeli?
Pogledajte primer iz stvarnog sveta, koji je prikazan na slici 1-16.

Slika 1-16 Google.com pretraga za green cats (12.11.2014.)

PHP, Apache i MySQL

17

Zbog nekog veoma udnog razloga, odluili smo da potraimo green cats (zelene make)
na Internetu. Kada smo uneli niz u omiljeni pretraiva (u ovom primeru to je Google), a zatim
kliknuli na dugme Search, informacija je prosleena Google serveru. Gde?
Ko zna mogue je da je prosleena bilo gde na naoj planeti. Meutim, povoljna okolnost u
vezi Interneta je injenica da nas ne interesuje kom serveru su prosleene informacije, dok god
brzo dobijamo rezultate.

Slika 1-17 Zelene make (12.11.2014.)


U redu, moram rei da sam iznenaen da postoji 104 miliona moguih linkova ka zelenim
makama. Moda bi trebalo da filtriramo rezultate. Meutim, poenta je da Google vraa web
stranicu sa listom linkova i njihovih opisa (plus reklame).
Da li Google vraa statinu stranicu koja je ve postojala?
Ne vraa. Serveri su kreirali dinamiku stranicu iz upita korisnika. Google algoritmi (softver)
pretraili su ogromne Google baze podataka. Upit je prvo poslat na Google web server iz pretraivaa korisnika. Web server alje, zatim, upit u Google baze podataka (koristei Google Query,
jezik slian SQL-u) da bi vratio informacije o zelenim makama. Softver na web serveru
prevodi rezultate, dodaje HTML i JavaScript (takoe i neki Google Script Language) kod za
formatiranje web stranice sa rezultatima i vraa informaciju korisniku.
Statine nasuprot dinamikih web stranica Statina web stranica se ne menja u odnosu
na upit ili unos korisnika. Nju je kreirao web programer, a nalazi se na web serveru.
Kada korisnik trai stranicu pomou pretraivaa, njena kopija je poslata u pretraiva
za prikazivanje. Dinamika stranica se ne nalazi na web serveru. Kreirana je pomou
unosa korisnika. Program koji se nalazi na web serveru e kreirati i formatirati stranicu.
Stranica koju kreira program se tada preuzima u pretraiva korisnika. Njena kopija
se, obino, ne nalazi na web serveru. Za vie informacija o statinim web stranicama
pogledajte stranicu http://en.wikipedia.org/wiki/Static_web_page, a za vie informacija
o dinamikim web stranicama stranicu http://en.wikipedia.org/wiki/Dynamic_web_page.

POGLAVLJE 1 Uvod u PHP 7

18

Da li se svaka stranica preuzima u web pretraiva korisnika?


Preuzima se samo prva stranica. Linkovi stranice na dnu prve stranice rezultata vraaju rezultate
na web server, traei sledei set informacija (za dinamiko kreiranje druge stranice ili drugu
traenu stranicu). Proces koji smo opisali u vezi obrade PHP fajlova na Internetu je uobiajeni
proces za kreiranje dinamikih stranica.
Moda ste primetili neto interesantno o URL adresi stranice sa rezultatima koja je prikazana.
Adresa je sada https://www.google.com/?gws_rd=ssl#q=Green+Cats, a ne www.google.com.
Google algoritmi koriste GET HTTP Request kada alju upite pretrage na svoje servere.
HTTP - Hypertext Transfer Protocol je protokol (standard) za prenos poruka (teksta i
web stranica) izmeu raunara (raunara i servera) na Internetu. To je protokol zahteva-odgovora. Na primer, korisnik zahteva web stranicu pomou web pretraivaa.
Web server odgovara na zahtev i vraa stranicu u pretraiva. Pretraiva menja
zahtev u HTTP Get Request (kao to je GET /pages/mypage.html HTTP/1.1), koji je
poslat web serveru. Web server odgovara informacijom koja je zatraena i statusnim kodom (kao to je HTTP/1.1 200 OK). Za vie informacija o HTTP-u pogledajte
stranicu http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods.
<form name="orders" method="get" id="orders" action="searchprocess.php">
Name: <input type="text" name="customername" id="customername"><br />
<input type="submit" value="Submit your name">
</form>

Pogledajte prethodno navedeni jednostavniji primer da biste otkrili ta se deava. Pretpostavimo


da je navedeni kod sauvan u fajlu index.html na localhost web sajtu, pod direktorijumom projects.

Slika 1-18 Primer fajla index.html


Ako korisnik unese Fred u tekstualno polje koje je prikazano u pretraivau, stranica rezultata (kreirana prevoenjem i izvravanjem fajla searchprocess.php na web serveru i slanjem rezultata nazad u
pretraiva) prikazae URL liniju http://127.0.0.1/projects/searchprocess.php?customername=Fred.

Slika 1-19 Izvravanje fajla searchprocess.php


Naziv tekstualnog polja (customername) i vrednost uneta u tekstualno polje (Fred) su vidljivi u
URL liniji. U stvari, customername je sada parametar, a Fred je vrednost koju sadri parametar.
Ovo je rezultat upotrebe GET procesa.

PHP, Apache i MySQL

19

Kada kliknete na dugme Google Search ili dugme Search u naem jednostavnom primeru, traena informacija e biti poslata pomou GET HTTP procesa. Sve informacije (i promenljive)
koje su potrebne za primanje programa su poslate u aktuelnu URL liniju da bi ih primio program
na web serveru koji e obraditi poetni zahtev.
Zato Google pretraiva alje informaciju pomou GET-a, umesto pomou POST-a (koji bi
sakrio informacije)?
Glavni razlog je elja da se utedi memorija servera. Samo pomislite na milione zahteva koje Google
ima za odreenu informaciju. Ako bi se svi ovi zahtevi nalazili u memoriji, serveri bi ubrzo pali.
Osim toga, poto korisnik vri javnu pretragu za informaciju, nema razloga da se informacija sakrije.
U narednim poglavljima opisaemo kako se itaju GET i POST parametri unutar PHP programa.
Meutim, vratimo se za sada naem razmatranju o Apacheu, PHP-u i DBMS-u.
PHP moe da pristupi informacijama iz mnogih vrsta DBMS sistema, ukljuujui Oracle i
SQL Server. Meutim, najpopularnija kombinacija (kao to smo ve pomenuli) je par PHP sa
MySQL-om. Verujem da sada i znate zbog ega - oni su otvorenog koda i besplatni. MySQL je,
takoe, jedan od DBMS sistema koji su najjednostavniji za upotrebu.

Slika 1-20 www.mysql.com (24.09.2015.)


Korisnik moe da otvori zvanini web sajt MySQL-a (www.mysql.com) da bi preuzeo najnovije
verzije. Osim toga, kao to, verovatno, i nagaate, moete da se prikljuite zajednici i pomognete u razvoju novih verzija MySQL-a i slinih proizvoda. Dokumentacija aktuelne i nekoliko prethodnih verzija je dostupna za preuzimanje. Dokumentacija je prilino intenzivna i nije
namenjena za neiskusne korisnike i poetnike. Ako ste moda umorni od itanja, nije preporuljivo da preuzmete novu verziju MySQL-a posebno, dok ne budete imali malo vie iskustva. Za
sada, drite se paketa WAMP, LAMP i MAMP.

20

POGLAVLJE 1 Uvod u PHP 7

Uradite
1. Zato PHP procesor alje SQL u DBMS, umesto da ga Apache web server alje
direktno u DBMS?
2. ta Apache server moe da uradi sa informacijom koju je primio od DBMS-a pre nego
to je poalje nazad u pretraiva korisnika?
3. Otvorite www.mysql.com. Koja je najnovija verzija MySQL-a? Koje verzije Apache
servera i PHP-a su kompatibilne?
4. Zato pretraivai prosleuju informacije korienjem GET HTTP upita, umesto
POST HTTP upita? Kada koristite POST upit?

Spajanje svega - PHP, Apache i MySQL


Kao to ste do sada, nadam se, otkrili, PHP, Apache i MySQL treba zajedno da se pokreu
besprekorno da bi kreirali dinamike web stranice. Postoje mnogi razvojni paketi koji su dostupni
i obezbeuju kombinaciju ovih proizvoda, zajedno sa drugim alatkama, kao to je PhpMyAdmin
(ta alatka je izuzetno korisna u podeavanju web servera i baza podataka). Instaliranjem jednog
od ovih proizvoda smanjiete nivo frustracije (i moda ete uspeti da zadrite vei deo svoje kose
i da ne oelavite). Dva najpopularnija proizvoda EasyPHP i XAMPP neemo detaljno opisati,
niti emo napisati instrukcije, korak po korak, za njihovu instalaciju, zbog dva razloga. U vreme
izdavanja ove knjige uputstva e se verovatno promeniti, a bie u redu ako upotrebite standardna
podeavanja. Prihvatanje onoga to programeri preporuuju u veini sluajeva funkcionie.

EasyPHP

Slika 1-21 www.easyphp.org (24.09.2015.)

Spajanje svega - PHP, Apache i MySQL

21

Moete da preuzmete verziju programera EasyPHP-a sa sledeeg linka. Nije potrebno da preuzmete
host verziju ako ne planirate da hostujete ive web stranice direktno sa vaeg raunara na Internet.
http://www.easyphp.org/easyphp-devserver.php
Verzija programera EasyPHP-a je WAMP (Windows, Apache, MySQL, PHP) paket koji se
koristi u Microsoft Windows okruenju. Postoje dodatni alati koji vam mogu pomoi u radu.
Meutim, za sada je potrebno da instalirate samo osnovnu instalaciju. Nakon instalacije, fajlovi
e biti locirani u direktorijumu programskih fajlova pod direktorijumom EasyPHP.

Upozorenje
Obratite panju na koju dugmad klikete na web sajtu u toku preuzimanja. Ako ne proitate ono to preuzimat e pre
nego to kliknete na dugme, moete sluajno da preuzmete dodatne stavke koje vas ne interesuju.

Nakon preuzimanja instalera klikom na strelicu za preuzimanje na web sajtu, pratite uputstva
koje vam softver prikazuje. Za sada, ostavite sva standardna podeavanja. Nadamo se da e sve
biti pravilno instalirano. Za svaki sluaj, proitajte sledei odeljak pod naslovom Uobiajeni
problemi instalacije.

Uobiajeni problemi instalacije


Nedostaje C# biblioteka
PHP 7 (kao i ranije verzije PHP-a) zahteva Microsoft Visual Studio C# biblioteku. Ako imate Windows 8 ili noviji operativni sistem, ova biblioteka je, verovatno, ve instalirana. Osim toga, ako imate
noviju verziju Microsoft Visual Studioa, takoe je verovatno ve instalirana biblioteka. Ako primite
poruku o greci koja ukazuje na nepostojanje C# biblioteke ili na pogrenu verziju, pejstujte poruku
u pretraiva na Internetu. Potraite odgovor od Micorosofta za uputstva za ispravljanje greke.
Odgovor bi trebalo da ukljuuje link za preuzimanje nedostajuih fajlova i uputstva za instalaciju.

Konflikti porta
Ako ve imate servis koji koristi port 80, standardni port za HTML saobraaj izmeu PC-ja i
spoljanjeg sveta, primiete poruku o greci od Apache servera kada pokuate da ga pokrenete.
Ovaj problem moete da reite na nekoliko naina.
Wikipedia za port ima sledeu definiciju:
U raunarskom umreavanju port je softver specifian za aplikaciju ili proces koji slui
kao krajnja taka za komunikaciju u glavnom operativnom sistemu raunara. Namena
portova je da jedinstveno identifikuju razliite aplikacije ili procese koji su pokrenuti
na jednom raunaru, ime im se omoguava da dele jednu fiziku konekciju na mrei
komutacije paketa, kao to je Internet. U kontekstu Internet Protocola port je povezan
sa IP adresom glavnog raunara i sa vrstom protokola koji se koristi za komunikaciju.
Za vie informacija o portovima pogledajte stranicu
http://en.wikipedia.org/wiki/Port_(computer_networking).
A. Ako vam ne smeta da iskljuite druge servise koji koriste port dok programirate, moete da
pratite sledea opisana uputstva. Kada zavrite upotrebu Apachea i PHP-a, moete ponovo da
ukljuite servise ili samo da restartujete raunar i servisi e ponovo biti ukljueni.

22

POGLAVLJE 1 Uvod u PHP 7

1. Otvorite Microsoft Windows 7/8/10 Task Manager (pritisnite istovremeno tastere


Ctrl+Alt+Delete).
2. Selektujte karticu Services.
3. Potraite bilo koji od sledeih servisa na Windowsu 7/8/10. Ako pronaete jedan pokrenut
servis, kliknite na njega desnim tasterom mia i iskljuite ga. Zatim, pokuajte da restartujete
Apache. Ako ne funkcionie, ukljuite ponovo servis koji ste iskljuili i pokuajte da
iskljuite drugi (nazivi su moda malo drugaiji, u zavisnosti od verzije Windowsa).
SQL Server Reporter, Web Deployment Agent, BranchCache, Sync Share Service, WAS (IIS
Administrator) i W3SVC
B. Ako je potrebno da drugi servisi budu pokrenuti ili nemate privilegije administratora za
iskljuivanje servisa na portu 80, moete da promenite lokaciju standardnog porta za Apache.
Otvorite sistemsku paletu (donji desni ugao ekrana). Potraite EasyPHP ikonicu, tako to ete
skrolovati iznad ikonica. Bie prikazan opis svake ikonice. Ako ne vidite ikonicu, kliknite na
strelicu nagore u sistemskoj paleti da biste prikazali sve ikonice. Kliknite desnim tasterom mia
na ikonicu EasyPHP. Selektujte opciju Configuration, pa Apache. Otvorie se konfiguracioni fajl
Apachea (httpd.conf) u Notepadu (ili drugom standardnom editoru teksta). Prvo snimite kopiju
ovog fajla. Zahvaljujui tome, moi ete da ispravite bilo koje greke koje se dese. Zatim, potraite liniju Listen 127.0.0.1:80 unutar fajla. Promenite primer 80 na 8080 ili na 81, i to samo u
toj jednoj liniji. Na taj nain Apache server e moi da slua jedan od portova koji se ne koriste
u veini sluajeva. Ponovo snimite fajl (obavezno snimite originalni fajl na originalnu lokaciju).

NAPOMENA
Kada koristite Notepad ili bilo koji drugi editor za tekst, obavezno upotrebite opciju Save As, a zatim selektujte All Files
za vrstu fajla. Osim toga, obavezno ukljuite .conf ekstenziju fajla. Ako ne promenite vrstu fajla na All Files, fajl e biti
snimljen kao httpd.conf.txt. Ako se to desi, server nee videti fajl. Moete jednostavno da reite ovaj problem, tako
to ete ponovo otvoriti fajl i snimiti ga na pravilan nain.

Zatim, moete da restartujete Apache, tako to ete se vratiti u sistemsku paletu i potraiti ikonicu EasyPHP. Dvostruko kliknite na ikonicu; bie prikazan okvir sa porukom u kojem je prikazan status Apachea i MySQL-a. Verovatno ete videti crvenu boju za Apache status. Kliknite
na dugme Apache. Za nekoliko trenutaka boja bi trebalo da se promeni u zelenu, to znai da je
server pokrenut. Uradite isto za MySQL.

Nedostajui fajlovi
Ako primite poruku o greci koja se odnosi na nedostajue fajlove, to znai da su fajlovi nekako
oteeni pre instalacije. Vratite se na web sajt EasyPHP i ponovo preuzmite fajlove. Ako na neki
nain pokvarite Apache konfiguracioni fajl, vratite se nazad i ponovo reinstalirajte proizvod.

Ne moete da instalirate fajlove u direktorijum programskih fajlova


Ako ne moete da instalirate fajlove u direktorijum programskih fajlova, to ukazuje da vi ili
neto drugo (podeavanje) imate bezbednosnu zabranu otvaranja tog direktorijuma. Ponovo
pokrenite instalaciju i promenite lokaciju instalacije u drugi direktorijum. Kada kasnije u knjizi
budemo govorili o direktorijumu programskih fajlova, treba da potraite direktorijum u koji ste
instalirali fajlove.

Spajanje svega - PHP, Apache i MySQL

23

Kanjenje i prekidanje veze Apache servera


U Windowsu 8/10 se moete suoiti sa problemima kao to su usporeni rad Apache servera ili
prekid veze. Da biste reili neki od ovih problema, otvorite sistemsku paletu (u donjem desnom
uglu ekrana). Ako ne moete da instalirate fajlove u direktorijum programskih fajlova, to ukazuje da vi ili neto drugo (podeavanje) imate bezbednosnu zabranu otvaranja tog direktorijuma.
Potraite EasyPHP ikonicu, tako to ete skrolovati preko ikonica. Trebalo bi da bude prikazan
opis svake ikonice. Ako ne vidite ikonicu, kliknite na strelicu nagore u sistemskoj paleti da biste
prikazali sve ikonice. Kliknite desnim tasterom mia na ikonicu EasyPHP. Selektujte Configuration, a zatim Apache. Otvorie se Apache konfiguracioni fajl (httpd.conf) u Notepadu (ili
u drugom standardnom editoru za tekst). Prvo snimite kopiju ovog fajla na neko drugo mesto,
ime ete obezbediti mogunost ispravke eventualnih greaka.
Zatim, dodajte sledee dve linije na kraj fajla.
AcceptFilter http none
AcceptFilter https none

Ponovo snimite fajl (obavezno snimite originalni fajl na originalnu lokaciju).

Ostale greke
Greke koje ovde nisu opisane kopirajte i pejstujte u pretraiva. Potraite odgovore koji obezbeuje i preporuku za ispravljanje greaka. Postoje mnogi besplatni izvori na Internetu. Nemojte
da plaate vlasniku web sajta (ili nekom drugom korisniku) za otklanjanje problema.

Konfiguracije
Treba da odredite kada elite da se Apache pokrene. Apache moe da bude podeen da se
pokree kada ukljuite PC i kada je potreban aplikaciji ili moe da se pokree runo. Da biste
promenili podeavanja, kliknite desnim tasterom mia na EasyPHP ikonicu u sistemskoj paleti
(donji desni ugao ekrana), pa selektujte Configuration i opciju EasyPHP. Ako ne vidite ikonicu,
kliknite na strelicu nagore u sistemskoj paleti. Trebalo bi da bude prikazan mali ekran koji e
vam omoguiti da potvrdite (ili iskljuite) dve opcije - Start on Session Startup i Launch Servers
When the Application Starts.
Postoje mnoge opcione biblioteke kojima moete da uspostavite ili raskinete vezu sa PHP-om,
po potrebi. U mnogim sluajevima biblioteke su ve uitane i treba samo da budu povezane.
Moete da ih dodate ako otvorite PHP konfiguracioni fajl (php.ini) i uklonite karakter komentara (;) na poetku linije. PHP konfiguracioni fajl moe lako da se pronae ako kliknete desnim
tasterom mia na EasyPHP ikonicu u sistemskoj paleti, pa selektujete Configuration i PHP. Nije
vano da li ete sada izvrite neke promene. Preporuljivo je da promene izvravate samo kada
je potrebno. Druge biblioteke mogu da se dodaju pomou Curla i drugih metoda, koji su opisani
u narednim poglavljima ove knjige.
Za detaljnije objanjenje php.ini fajla pogledajte besplatni The New Boston (thenewboston.
com) video na adresi https://www.thenewboston.com/videos.php?cat=11&video=16993.

24

POGLAVLJE 1 Uvod u PHP 7

XAMPP

Slika 1-22 XAMPP na adresi www.apachefriends.org (24.09.2015.)


Iako je slian EasyPHP-u, XAMPP je popularniji, zato to ima besplatne verzije za Windows,
Linux i OS X sisteme. Takoe ukljuuje puno dodataka, meu kojima su i neki najpopularniji
sistemi za upravljanje sadrajima - Drupal, Joomla i WordPress. Najnovijim verzijama moete
da pristupite direktno na zvaninom XAMPP web sajtu ili na mnogim drugim lokacijama za
preuzimanje.
https://www.apachefriends.org/

Upozorenje
Obratite panju na koju dugmad klikete na web sajtu. Ako ne proitate ta preuzimate pre nego to kliknete na
dugme, moda ete preuzeti i neke dodatne stavke za koje niste zainteresovani.

U toku prvog pokuaja instaliranja upotrebite standardna podeavanja koja preporuuju programeri u instalacionom softveru. Na taj nain ete smanjiti mogunost nastanka problema ili
glavobolje. Ako dobijete poruku o greci, radi pomoi proitajte sledei odeljak pod naslovom
Uobiajeni problemi instalacije.

Uobiajeni problemi instalacije


Konflikti porta
Ako ve imate servis koji koristi port 80, standardni port za HTML saobraaj izmeu PC-ja i
spoljanjeg sveta, primiete poruku o greci od Apache servera kada pokuate da ga pokrenete.
Ovaj problem moete da reite na nekoliko naina.

Spajanje svega - PHP, Apache i MySQL

25

A. Ako vam ne smeta da iskljuite druge servise koji koriste port dok programirate, moete da
pratite uputstva na video linku. Kada zavrite upotrebu Apachea i PHP-a, moete ponovo da
ukljuite servise ili samo da restartujte raunar i servisi e ponovo biti ukljueni.
1. Otvorite Microsoft Windows 7/8/10 Task Manager (pritisnite istovremeno tastere
Ctrl+Alt+Delete).
2. Selektujte karticu Services.
3. Potraite bilo koji od sledeih servisa na Windowsu 7/8/10. Ako pronaete jedan pokrenut
servis, kliknite na njega desnim tasterom mia i iskljuite ga. Zatim, pokuajte da restartujete
Apache. Ako ne funkcionie, ukljuite ponovo servis koji ste iskljuili i pokuajte da
iskljuite drugi (nazivi su moda malo drugaiji, u zavisnosti od verzije Windowsa).
SQL Server Reporter, Web Deployment Agent, BranchCache, Sync Share Service, WAS (IIS
Administrator) i W3SVC
B. Ako je potrebno da drugi servisi budu pokrenuti ili ako nemate privilegije administratora za
iskljuivanje servisa na portu 80, moete da promenite lokaciju standardnog porta za Apache.
Otvorite sistemsku paletu (u Microsoft Windowsu se nalazi u donjem desnom uglu ekrana). Potraite XAMPP ikonicu, tako to ete skrolovati iznad ikonica. Bie prikazan opis svake ikonice.
Ako ne vidite ikonicu, kliknite na strelicu nagore u sistemskoj paleti da biste prikazali sve ikonice.
Dvostruko kliknite na ikonicu. Otvorie se Control Panel. Trebalo bi da vidite poruke o greci pri
pokretanju, ispisane crvenom bojom na konzoli. Ako je re o konfliktu porta, kliknite na dugme
Config desno od opcije Apache. Iz liste koja e biti prikazana selektujte httpd.conf. Otvorie se
konfiguracioni fajl Apachea (httpd.conf) u Notepadu (ili u drugom standardnom editoru teksta).
Prvo snimite kopiju ovog fajla negde (za sluaj da napravite greku). Zahvaljujui tome, moi
ete da vratite originalni fajl. Zatim, potraite liniju Listen 80 unutar fajla. Promenite primer 80 na
8080 ili na 81. Na taj nain e Apache server moi da slua jedan od portova koji se ne koriste
u veini sluajeva. Ponovo snimite fajl (obavezno snimite originalni fajl na originalnu lokaciju).

NAPOMENA
Kada koristite Notepad ili bilo koji drugi editor za tekst, obavezno upotrebite opciju Save As, pa selektujte All Files
za vrstu fajla. Osim toga, obavezno ukljuite .conf ekstenziju fajla. Ako ne promenite vrstu fajla na All Files, fajl e biti
snimljen kao httpd.conf.txt. Ako se to desi, server nee videti fajl. Moete jednostavno da reite ovaj problem ako
ponovo otvorite fajl i snimite ga na pravilan nain.

Zatim, moete da restartujete Apache, tako to ete kliknuti na dugme Start pored stavke Apache
u XAMPP konzoli. Ako dobijete status za Apache zelene boje, takoe ete eleti da pokrenete i
MySQL klikom na dugme Start pored stavke MySQL.

Nedostajui fajlovi
Ako primite poruku o greci koja se odnosi na nedostajue fajlove, znai da su fajlovi nekako
oteeni pre instalacije. Vratite se na web sajt XAMPP i ponovo ih preuzmite. Ako na neki nain
pokvarite Apache konfiguracioni fajl, moraete da ponovo preuzmete fajlove.

Ne moete da instalirate fajlove u direktorijum programskih fajlova


Ako ne moete da instalirate fajlove u direktorijum programskih fajlova, to ukazuje da vi ili
neto drugo imate bezbednosnu zabranu otvaranja tog direktorijuma. Ponovo pokrenite insta-

26

POGLAVLJE 1 Uvod u PHP 7

laciju i promenite lokaciju instalacije u drugi direktorijum. Kada kasnije u knjizi bude rei o
direktorijumu programskih fajlova, treba da potraite direktorijum u koji ste instalirali fajlove.

Kanjenje i prekidanje veze Apache servera


U Windowsu 8/10 moete se suoiti sa problemima u vidu usporenog rada Apache servera ili
prekidanja veze. Da biste reili neki od ovih problema, otvorite sistemsku paletu (donji desni
ugao ekrana). Potraite XAMPP ikonicu, tako to ete skrolovati preko ikonica. Trebalo bi da
bude prikazan opis svake ikonice. Ako ne vidite ikonicu, kliknite na strelicu nagore u sistemskoj
paleti da biste prikazali sve ikonice. Kliknite desnim tasterom mia na ikonicu XAMPP. Selektujte Configuration, pa Apache. Otvorie se Apache konfiguracioni fajl (httpd.conf) u Notepadu
(ili u drugom standardnom editoru za tekst). Prvo snimite kopiju ovog fajla na neko drugo mesto
da biste mogli da ispravite eventualne greke.
Zatim, dodajte sledee dve linije na kraj fajla.
AcceptFilter http none
AcceptFilter https none

Ponovo snimite fajl (obavezno snimite originalni fajl na originalnu lokaciju).

Ostale greke
Greke koje ovde nisu opisane kopirajte i pejstujte u pretraiva. Potraite odgovor koji obezbeuje i preporuku za ispravljanje greaka. Postoje mnogi besplatni izvori na Internetu. Nemojte
da plaate vlasniku web sajta (ili nekom drugom) za otklanjanje problema.

Konfiguracije
Moete da promenite konfiguraciju za XAMPP, tako to ete otvoriti Control Panel (dvostruko
kliknite na XAMPP u sistemskoj paleti u donjem desnom uglu ekrana). Zatim, kliknite na dugme
Config u gornjem desnom uglu ekrana (ne na dugmad Config koja se nalaze desno od aplikacije). Moete da potvrdite (ili iskljuite) one aplikacije koje ne elite da se automatski pokrenu
sledeeg puta kada se pokrene Control Panel. Treba da potvrdite Apache i MySQL, zbog lekcija
u ovoj knjizi. Naravno, uvek moete da ih pokrenete iz Control Panela kada je to potrebno.
Postoje mnoge opcione biblioteke kojima moete da uspostavite ili raskinete vezu sa PHP-om,
po potrebi. U mnogim sluajevima biblioteke su ve uitane i treba samo da budu povezane.
Moete da ih dodate, tako to ete otvoriti PHP konfiguracioni fajl (php.ini) i ukloniti karakter
komentara (;) na poetku linije. PHP konfiguracioni fajl moe lako da se pronae ako dvostruko
kliknete miem na XAMPP ikonicu u sistemskoj paleti. Zatim, selektujte Configuration desno
od opcije Apache. Bie prikazana lista; selektujte php.ini. Nije vano da li ete sada izvriti neke
promene. Preporuljivo je da promene izvravate samo kada je potrebno. Druge biblioteke mogu
da se dodaju pomou Curla i drugih metoda, koji su opisani u narednim poglavljima ove knjige.

Microsoft Internet Information Server


Alternativno, ako ne moete da pravilno pokrenete Apache u Windowsu, (posebno u Windowsu
8 ili Windowsu 10) ili ako vam se dopada Microsoftov IIS Server, moete da instalirate PHP
da koristi Microsoft IIS (Internet Information Server), umesto Apache servera. Za vie informacija posetite stranicu http://www.microsoft.com/web/platform/phponwindows.aspx

Testiranje okruenja

27

Uradite
1. Primili ste sledeu greku u toku instaliranja ili kada ste pokuali da pokrenete
XAMMP ili EasyPHP. Upotrebite pretraiva da biste odgovorili na pitanja kako
moe da se pronae reenje za problem i ta moe da izazove ovu greku?
Internal Server Error
The server encountered an internal error
unable to complete your request.
Please contact the server administrator,
them of the time the error occurred, and
done that may have caused the error.
More information about this error may be
error log.

or misconfiguration and was


you@example.com and inform
anything you might have
available in the server

2. Upotrebite pretraiva da biste odgovorili ta je XAMPP greka #1130 i kako moete


da je ispravite.
3. Kada pokuate da pokrenete PHP program, koristei EasyPHP (i Apache), primili ste
sledeu greku. Upotrebite pretraiva da biste odgovorili ta izaziva ovu greku i
kako moete da je ispravite.
Cannot load mcrypt extension. Please check your PHP configuration.

4. Ako ve niste to uradili, sada instalirajte EasyPHP ili XAMPP na svoj lini raunar. Da
li ste imali nekih problema prilikom instalacije? Ako ste ih imali, kako ste ih reili?

Testiranje okruenja
Sada imate zelena svetla, zar ne? Sve funkcionie pravilno?
Da biste bili sigurni, najbolje je da izvrite test okruenja.

Testiranje administrativnog okruenja


Prvo treba da testirate server i vidite da li se prikazuju administracione stranice. U EasyPHP-u
moete da izvrite jedan od sledeih zadataka:
1. Kliknite desnim tasterom mia na EasyPHP ikonicu i selektujte opciju Administration.
ili
2. Otvorite omiljeni pretraiva i unesite
http://127.0.0.1/home/.

28

POGLAVLJE 1 Uvod u PHP 7

Ako treba da promenite port zbog konflikta, moda e biti potrebno da unesete broj
porta, kao to je
http://127.0.0.1:8080/home/.
Trebalo bi da vidite ekran slian onom koji je prikazan na slici 1-23.

Slika 1-23 EasyPHP administracioni ekran (PHP 5.6)


Za XAMPP otvorite omiljeni pretraiva i unesite adresu
http://127.0.0.1/dashboard/
Ako treba da promenite port zbog konflikta, takoe treba da ukljuite port
http://127.0.0.1:8080/dashboard/

Testiranje okruenja

29

Ako je XAMPP pravilno instaliran, trebalo bi da vidite ekran slian onome koji je prikazan na
slici 1-24.

Slika 1-24 Ekran XAMPP komandne table (24.09.2015.)


Ako sada ne vidite ovu stranicu (ili neku stranicu na kojoj je prikazan XAMPP), neto nije u
redu. Proverite da li je EasyPHP ili XAMPP pokrenut. Da li vidite zeleno svetlo ili zelenu boju
za Apache u XAMPP Control Panelu ili u EasyPHP-u? Ako ne vidite, pokuajte da kliknete na
dugmad ili linkove Start.
Ako Apache nee da se pokrene, da li vidite poruku o greci? Ako ne vidite, proverite fajl
evidencije greaka. Za EasyPHP kliknite desnim tasterom mia na ikonicu u sistemskoj paleti
i selektujte fajl evidencije greaka za Apache. Za XAMPP kliknite na dugme Log u Control
Panelu pored stavke Apache i selektujte Error Log.
Ako vidite zelenu boju, a stranice izgledaju kao da su zakljuane, pokuajte da zaustavite i
ponovo pokrenete Apache. Moda e biti potrebno da pokuate nekoliko puta dok ga ne probudite. Ako nastavi da se prekida veza, proverite podeavanja raunara. Da li ste prevazili
maksimum za upotrebu CPU-a?
Ako dobijete poruku o greci, pejstujte je u omiljeni pretraiva i vidite ta eksperti kau o tom
problemu.

Uradite
1. Ako ve niste to uradili, testirajte okruenje, koristei prethodno navedena uputstva.
Da li imate probleme? Ako imate, koji problemi su se pojavili? Kako ste ih otklonili?

30

POGLAVLJE 1 Uvod u PHP 7

Testiranje PHP okruenja


Ako je do sada sve bilo u redu, ili ste imali sree i proli sve veoma brzo ili ste reavali probleme
sa kojima ste se ve ranije susretali. Meutim, i dalje treba da proverite da li moete da pokrenete svoj PHP program u Apacheu.
Otvorite editor za tekst (ne Word, ve Notepad ili Notepad++) i unesite sledei kod tano onako
kako je prikazan.
<?php
print "Hello World";
?>

Slika 1-25 Upotreba opcije Save As sa izabranom vrstom fajla All Files za snimanje PHP programa
Koristei opciju Save As u meniju File, promenite File Type na All Files ili na php. Unesite
naziv fajla myfirstprogram.php i snimite ga na jednu od narednih ispisanih lokacija.
Ako koristite EasyPHP, snimite program u
C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects
Naravno, treba da promenite naziv verzije (ili naziv programskog fajla) na odgovarajuu verziju
(lokaciju) koju koristite na svom raunaru. Ako imate verziju EasyPHP-a koja nema direktorijume projekta localweb\, pronaite lokaciju direktorijuma www pod direktorijumom EasyPHP i
kreirajte direktorijum pod nazivom projects. Zatim, snimite fajl pod tim direktorijumom.
Ako koristite XAMPP, prvo otvorite C:\xampp\htdocs i kreirajte direktorijum pod nazivom projects. Zatim se vratite u editor za tekst, izaberite opciju Save As (ne zaboravite da promenite vrstu
fajla na All Files ili php), dodelite naziv fajlu myfirstprogram.php i snimite ga na sledeu lokaciju.
C:\xampp\htdocs\projects

Testiranje okruenja

31

Ako ste pravilno snimili fajlove na EasyPHP ili XAMPP lokacijama, moete da pokuate da
pokrenete program tako to ete u URL polje pretraivaa uneti
http://127.0.0.1/projects/myfirstprogram.php
Ako ste promenili port, promenite prvi deo na http://127.0.0.1:8080/ (unesite odgovarajui
port koji koristite, umesto 8080).
Trebalo bi da program prikae poruku koja je predstavljena na slici 1-26.

Slika 1-26 Hello World

Uobiajeni problemi
Nita nije prikazano, error 404:
1. Uverite se da ste ukucali adresu tano onako kako je prikazana.
2. Moda je prekinuta veza sa serverom. Zaustavite server i ponovo ga pokrenite.
3. Uverite se da se fajl nalazi na odgovarajuoj lokaciji.
4. Uverite se da ste snimili fajl kao .php fajl, a ne kao .txt. Pokuajte ponovo da upotrebite
opciju Save As i promenite naziv fajla (uverite se da je vrsta fajla All Files ili php).
5. Potraite gramatike greke u aktuelnom kodu programa. Da li ste zaboravili znak takazarez (;)? Ispravite greke i ponovo snimite fajl. Moda treba da zaustavite i ponovo
pokrenete server ako zbog neega ne vidi promene. Moete da pogledate fajlove evidencije
i potraite fajlove PHP evidencije da biste uoili greke koje moda postoje u kodu.
6. Otvorite fajlove Apache evidencije (sledite uputstva data u prethodnom odeljku
Uobiajeni problemi) i potraite greke - ako ne moete da ih ispravite, kopirajte ih
i pejstujte u pretraiva da biste videli koja su reenja pronali drugi korisnici.
Prikazan je kod aktuelnog programa, a ne rezultati izvrenja koda:
1. Uverite se da ste snimili fajl kao .php fajl, a ne kao .txt. Pokuajte ponovo da upotrebite
opciju Save As i promenite naziv fajla (uverite se da je vrsta fajla All Files ili php).
2. Apache server ili PHP moda nije pokrenut ili je veza prekinuta. Zaustavite Apache i
ponovo ga pokrenite.
3. Da li imate greku u <?php ili ?> linijama ili ste zaboravili da ih unesete?
4. Otvorite fajlove Apache evidencije (vidite uputstva data u prethodnom odeljku
Uobiajeni problemi) i potraite greke - ako ne moete da ih ispravite, kopirajte ih
i pejstujte u pretraiva da biste videli koja su reenja pronali drugi korisnici.
Za bilo koje druge greke kopirajte i pejstujte poruku o grekama u web pretraiva i vidite koja
su reenja pronali drugi korisnici.

32

POGLAVLJE 1 Uvod u PHP 7

EasyPHPs Code Classroom


Ako i dalje imate probleme sa dobijanjem verzije LAMP, MAMP ili WAMP za rad na raunaru,
nije sve izgubljeno.
EasyPHP (www.easyphp.org) sada ima online okruenje za pisanje koda za studente i predavae. Ovo okruenje (vidite sliku 1-27) omoguava da unesete kod (crni prozor dole), kliknete
na dugme Submit (crveno dugme) i vidite rezultate sa desne strane ekrana (beli prozor).

Slika 1-27 www.codeclassroom.net

Uradite
1. Ako jo niste testirali okruenje, uradite to. Da li test funkcionie? Koje ste probleme
imali i kako ste ih reili?

Alternativni direktorijumi
U stvarnom svetu je uobiajena praksa kreiranje alternativnih direktorijuma na web serverima.
Alternativni direktorijumi su lane lokacije fajlova, koji e prevariti korisnika vaeg web sajta i
uveriti ga da se fajl nalazi na jednoj lokaciji, a nalazi se, u stvari, na drugoj lokaciji.
Zato biste upotrebili alternativni direktorijum? Kada web sajtovi rastu, lokacije fajlova na serverima e se moda menjati. Zbog upotrebe alternativnih direktorijuma, korisnik vaeg web
sajta nee znati da je stvarna lokacija fajla promenjena. Alternativni direktorijum omoguava da
uvate fajlove na bilo kojoj lokaciji na raunaru (serveru). Ako ga ne koristite, svi fajlovi moraju
da budu sauvani na standardnoj lokaciji. Standardne lokacije su:
EasyPHP: C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\
XAMPP: C:\xampp\htdocs\

Alternativni direktorijumi

33

Moda ete eleti da razmotrite kreiranje alternativnog direktorijuma, pogotovo ako elite da
postavite fajlove na USB disk sa fle memorijom. U ovoj knjizi pretpostavljamo da su fajlovi
sauvani na standardnim lokacijama u direktorijumu projects.
EasyPHP: C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects
XAMPP: C:\xampp\htdocs\projects

Ako se fajlovi nalaze na ovim lokacijama, moi ete da testirate programe, koristei isti URL,
bez obzira da li koristite EasyPHP ili XAMPP.
http://127.0.0.1/projects/myfirstprogram.php

Ako kreirate alterantivni direktorijum, ne zaboravite da zamenite projects alternativnim nazivom koji koristite.

Slika 1-28 Ekran alternativnog direktorijuma u EasyPHP-u


U EasyPHP-u alternativni direktorijumi mogu da se kreiraju na ekranu Administration. Otvorite
sistemsku paletu (u donjem desnom uglu ekrana), kliknite desnim tasterom mia na ikonicu
EasyPHP i selektujte Administration. Na sredini ekrana potraite Local Files, a na desnoj strani
ekrana potraite dugme Add an Alias - kliknite na ovo dugme i pratite uputstva. Direktorijum
mora da postoji pre dodavanja alternativnog direktorijuma.

34

POGLAVLJE 1 Uvod u PHP 7

Slika 1-29 httpd-xampp fajl


U XAMPP-u je potrebno malo vie posla. Otvorite sistemsku paletu, tako to ete dvostruko kliknuti na ikonicu XAMPP. Zatim, kliknite na dugme Config desno od stavke Apache. Selektujte
konfiguracioni fajl httpd-xampp iz liste. Izaberite Edit>Find iz menija u editoru teksta. Potraite
niz <IfModule alias_module>. Nemojte da promenite nita to je ve izlistano u ovom odeljku.
Meutim, moete da dodate lokacije (koristei sledei kod) za izvrne fajlove. Kada ste uneli
potrebne linije, zaustavite i ponovo pokrenite Apache da biste mu pomogli da pronae nove
promene.
Alias /myfiles "C:/Temp"
<Directory "C:/Temp">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Require all granted
</Directory>

Za vie informacija o kreiranju alternativnih direktorijuma pogledajte stranicu


https://www.youtube.com/watch?v=XX6t3zJRXF8.

NAPOMENA
Ovo podeavanje direktorijuma omoguava itanje i pisanje u direktorijum. U narednom poglavlju emo opisati opcije
za bezbednost direktorijuma za ive sajtove.

Notepad++, editori i testeri koda

35

Slika 1-30 Hello World pokrenut iz alternativnog direktorijuma pod nazivom myfiles kao index.php fajl
Ova lista omoguava da se bilo koji fajlovi u direktorijumu C:/Temp izvravaju na Apache
serveru kada korisnik unese myfiles kao naziv direktorijuma u URL liniju. Podeavanja direktorijuma koja su izabrana ne pruaju veliku bezbednost. Meutim, ovaj primer slui samo za
testiranje na test maini. Ako se nalazite u ivom okruenju, treba da pojaate podeavanja
bezbednosti pod tagom directory. Da biste izvrili fajlove unutar ovog direktorijuma, treba da
unesete URL http://127.0.0.1/myfiles u pretraiva. Ako ne ukljuite naziv fajla, Apache
e pokuati da pronae index.html ili index.php fajl. Ako ne postoji ni jedan od tih fajlova,
Apache e izlistati fajlove u direktorijumu sa aktuelnim podeavanjima. To e omoguiti lak
pristup fajlovima za testiranje. Meutim, to nije dobro u ivom okruenju. Moete da poaljete upit za fajl koji nije index fajl, tako to ete dodati naziv fajla (http://127.0.0.1/myfiles/
myfirstprogram.php). Ne zaboravite da ukljuite portov broj ako ste morali da ga promenite
(http://127.0.0.1:8080/myfiles/myfirstprogram.php). Naravno, direktorijum mora da postoji
i fajlovi moraju da se nalaze u direktorijumu pre nego to testirate URL u pretraivau.

Uradite
1. Kreirajte alternativni direktorijum pod nazivom myfiles, koji ukazuje na postojeu
lokaciju na vaem hard drajvu ili USB drajvu sa fle memorijom. Postavite program
hello world, koji ste koristili za testiranje okruenja, u direktorijum. Pokuajte da
pokrenete program iz direktorijuma, koristei prethodne instrukcije. Da li ste uspeno
izvrili ovaj zadatak? Ako niste, kakav ste problem imali i kako ste ga reili?

Notepad++, editori i testeri koda


Kada kreirate PHP kod, ne treba da koristite specijalni editor ili da kupite editor. Moete da kreirate kod u editoru za tekst (ak i u Notepadu). Meutim, od velike je pomoi ako imate editor
koji e bojama istai kod, jer ete lake pronai greke u kodu (sintaksi).

36

POGLAVLJE 1 Uvod u PHP 7

Notepad++

Slika 1-31 Hello World unutar Notepada++


Notepad++ je dostupan za preuzimanje na adresi www.notepad-plus-plus.org. Ovaj editor je
veoma jednostavan za upotrebu. Moete da kreirate fajlove u vie od 20 razliitih formi (ukljuujui PHP). Veina primera koda koji se nalaze u ovoj knjizi je kreirana u Notepadu ++. Kada
kreirate novi PHP program u Notepadu++, morate da ukaete aplikaciji koja je to vrsta fajla. To
moete da uradite tako to ete izabrati stavku menija Language, a zatim PHP. Na taj nain e
vam aplikacija pomoi da kodirate u boji, a dostupne su i druge funkcije.

Ostali editori
Postoje stotine drugih editora koji su dostupni. Preporuujem da izaberete onaj koji vam najvie
odgovara; www.download.com je dobar sajt na kojem moete da pronaete besplatne PHP editore. Izaberite editor koji ima mnogo dobrih ocena od korisnika.
Kao to sam ranije pomenuo, moda ete eleti da isprobate EasyPHPs code classroom na
adresi
www.codeclassroom.net

Termini poglavlja

37

Uradite
1. Izaberite editor za tekst koji ete koristiti za izvravanje kodiranja dok koristite ovu
knjigu. Preuzmite ga na raunar. Prekucajte program hello world u editor i snimite
program. Pokrenite program u pretraivau. Zato ste izabrali editor koji ste preuzeli?
ta vam se dopada, a ta vam se ne dopada u vezi tog editora?

Termini poglavlja
PHP
Objektno-orijentisani jezik
WAMP
MAMP
Programski jezik
Web pretraiva
HTML
Takovi skripta
print funkcija
Apache Software Foundation
Sistem za upravljanje bazom podataka
Dinamika stranica
MySQL
Port 80
php.ini
XAMPP Control Panel
Otvoreni kod

Proceduralni jezik
www.php.net
LAMP
Jezik za pisanje skriptova
JavaScript
Izvorni kod
CSS
Web server
Apache
SQL
Statina stranica
GET HTTP upit
EasyPHP (verzija programera)
httpd.conf
XAMPP
Alternativni direktorijumi
Notepad++

Pitanja i projekti poglavlja


Viestruki izbor
1. MAMP je skraenica za

a. Mobile Application Motor Processor


b. My Awesome Mobile Program
c. Apache-MySQL-PHP
d. Modern Application Modular Programing
e. Ni jedno od navedenih
2. Ciljevi Apache Software Foundation (ASP-a) ukljuuju:
a. koordinaciju svih promena na Apache web serveru
b. nadzor i prodaju svakog Apache softvera

38

POGLAVLJE 1 Uvod u PHP 7

c. licenciranje svih web servera


d. odravanje lanstva za programiranje otvorenog koda kroz Apache web server
3. Koji jezici za pisanje skriptova mogu da se prikau unutar web pretraivaa?
a. Java
b. XML
c. JavaScript
d. PHP
4. Selektujte iskaze koji su istiniti za statine web stranice:
a. One se nekada nazivaju ravne stranice/stacionarne stranice.
b. Njih generie web aplikacija.
c. Statine web stranice prikazuju iste informacije svim korisnicima.
d. Sve od navedenog
e. A i C
5. ___________ je objektno-orijentisani raunarski programski jezik koji se obino
koristi za kreiranje interaktivnih efekata unutar web pretraivaa.
a. HTML
b. XML
c. JavaScript
d. PHP
6. Koji je pravilan nain zavravanja PHP iskaza?
a. ;
b. nova linija
c. <!php>
d. .
7. ta dugmad za konfiguraciju u XAMPP Control Panelu omoguavaju korisniku da
izvri?
a. instaliranje XAMPP-a
b. selektovanje aplikacija za automatsko pokretanje
c. upravljanje dodacima
d. konfigurisanje MYSQL-a
8. php.net obezbeuje sve od sledeeg, osim
a. informacije o svakom novijem izdanju
b. dokumentaciju PHP jezika
c. linkove za preuzimanje LAMP-a, MAMP-a i WAMP-a
d. saradnju na PHP dokumentaciji

Pitanja i projekti poglavlja

39

9. Koji od sledeih izbora najbolje opisuje jezik za pisanje skriptova??

a. Jezik je preveden.
b. Program mora da bude kompatibilan sa operativnim sistemom i hardverom.
c. Kodu se prvi put pristupa kada se prvi put izvrava program.
d. Kod je sporiji od prevedenog koda.

Tano/netano
1. Alternativni direktorijum omoguava da snimite fajlove web stranice u direktorijum
po vaem izboru, a ne u direktorijum www. Omoguava da URL adresa ukazuje
direktno na taj direktorijum.
2. Statina stranica je stranica koja je dodata u suilicu kada suite ve da biste spreili
statini elektricitet.
3. Klijent pretraiva alje GET HTTP zahtev serveru, a zatim server vraa odgovor u
klijent pretraiva.
4. Verzija programera EasyPHP-a moe da se kupi samo za jednu godinu.
5. Dinamika web stranica se nikada ne menja, a statina web stranica se uvek menja.
6. WAMP je skraenica za Windows, Apache, MySQL i PHP.
7. Apache je primer web servera.
8. HTML je skraenica za Hypertext Markup Language.
9. PHP je skraenica za Personal Home Page.
10. Proceduralni jezik je programski jezik koji koristi klase i objekte.
11. Dok pregledate web sajt u pretraivau, moete da vidite izvorni kod, koji moe da
vam pokae HTML, JavaScript i CSS. Meutim, PHP kod nee biti vidljiv.
12. Java je proceduralni programski jezik.

Kratak odgovor/Esej
1. Objasnite proces koji se deava kada pretraiva poalje upit za statinu web stranicu.
2. Objasnite proces koji se deava kada pretraiva poalje upit za dinamiku web
stranicu.
3. Objasnite razliku izmeu proceduralnog jezika i jezika za pisanje skriptova.
4. Kako ete u program dodati kod za pristup PHP biblioteci?
5. Zato treba da upotrebite WAMP, MAMP ili LAMP, umesto da pojedinano
instalirate svaku aplikaciju?

40

POGLAVLJE 1 Uvod u PHP 7

Projekti
1. Kreirajte PHP program koji e prikazati rezime vae radne istorije i istorije
obrazovanja.
2. Kreirajte PHP program koji e prikazati va glavni predmet i obuku koja je potrebna
da zavrite glavni predmet.
3. Kreirajte PHP program koji e prikazati ciljeve i/ili zadatke vaeg koleda/
univerziteta.

Dugoroni projekat
1. Va nadreeni je zatraio da dizajnirate bezbednu aplikaciju koja e pratiti inventar u
skladitu preduzea ABC Computer Parts Corporation. Ova aplikacija e biti
pristupana i unutar samog skladita i van njega (korienjem Interneta i/ili pametnog
telefona). Za koje podatke su potrebna polja za praenje ovih informacija? Koje
veliine i vrste podataka (niz, ceo broj, broj sa pokretnom takom) treba da definiu
ova polja? Koja druga ogranienja unosa (bez negativnih vrednosti za broj stavke)
treba da se definiu za ova polja?
Na primer, ako je za izradu vebe potrebno polje za Social Security Number (SSN):
SSN: Veliina: Min: 9 karaktera (niz) Max: 9 karaktera (niz) Ogranienja: validan SSN
format.
Ne zaboravite da ova informacija koristi karaktere, ne cele brojeve, jer nee biti nikakvog izraunavanja za SSN broj.

You might also like