Professional Documents
Culture Documents
483 PHP 7 PDF
483 PHP 7 PDF
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
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.
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.
10
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.
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?
11
12
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).
13
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
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.
15
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
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.
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.
18
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.
20
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?
EasyPHP
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.
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
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.
23
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
XAMPP
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.
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.
26
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.
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.
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.
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.
28
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.
Testiranje okruenja
29
Ako je XAMPP pravilno instaliran, trebalo bi da vidite ekran slian onome koji je prikazan na
slici 1-24.
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
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.
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
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.
34
NAPOMENA
Ovo podeavanje direktorijuma omoguava itanje i pisanje u direktorijum. U narednom poglavlju emo opisati opcije
za bezbednost direktorijuma za ive sajtove.
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?
36
Notepad++
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++
38
39
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
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.