PHP Za Pocetnike

Embed Size (px)

Citation preview

http://www.w3schools.com/php/

2. Rad s datumima i vremenima2.1 PHP funkcija Date() FunctionPHP datumska funkcija vri formatiranje podataka o datumu i vremenu (timestamp). Sintaksa date (format, timestamp) Parametar format timestamp Opis Potrebno. Odreuje format timestamp-a Opciono. Odreuje timestamp. Default je tekue vrijeme i datum

PHP date() funkcija ta je timestamp (vremenska odrednica)?

Timestamp je broj sekundi od 1. januara 1970. u 00:00:00 po Griniu. Ovaj izraz jetakoe poznat i kao Unix Timestamp. 2.2 Formatiranje datuma Prvi parametar u datumskoj funkciji odreuje nain formatiranja datuma/vremena. Ovaj parametar koristi alfanumerike karaktere da bi se prikazao datum i vrijeme. Ovdje emo navesti neke od karaktera koje moemo koristiti u tu svrhu:

d dan u mjesecu (01-31) m Tekui mjesec, u bliku broja (01-12) Y Tekua godina, za to se koriste etiri cifre

Pregled svih karaktera koji se mogu koristiti kao parametar za formatiranje datuma i vremena mogu se nai u PHP Date reference. Druge oznake, poput /, ., ili - se takoe mogu ubacivati izmeu slova da bi se izvrilo dodatno formatiranje datuma i vremena:

Rezultat gore navedenog koda bi mogao izgledati kao: 1

http://www.w3schools.com/php/2006/07/11 2006.07.11 2006-07-11

2.3 Dodavanje timestamp-a Drugi parametar u datumskoj funkciji odreuje timestamp. Ovaj parametar je opcioni. Ukoliko se ne proslijedi vrijednost za timestamp koristie se tekue vrijeme i datum. U sledeem primjeru koristiemo funkciju mktime da bismo kreirali timestamp za naredni dan. Funkcija mktime vraa Unix timestamp za odreeni datum. Sintaksa mktime (hour, minute, second, month, day, zear, is_ dst) Da bi se izvrilo pomjeranje vremena za jedan dan unaprijed jednostavno se dodaje jedan (1) na argument za dan u mktime() funkciji:

Rezultat gore navedenog koda bi mogao izgledati slino sljedeem:Tomorrow is 2006/07/12

PHP Date Reference Vie informacija o svim PHP datumskim funkcijama moe se nai u PHP Date Reference.

2

http://www.w3schools.com/php/

3. Snimanje i uitavanje podatakaPHP Include File (PHP ukljuivanje datoteke)(zaglavlje), footers (zaelje), ili elemenata koji e se ponovo koristiti na veem broju stranica.

Server Side Includes (SSI) se koristi za kreiranje funkcija, header-a

Server Side IncludesPomou funkcija include() ili require() sadraj neke datoteke se moe unijeti u PHP datoteku prije nego to ga server procesira. U svakom sluaju, radi se o dvijema identinim funkcijama, izuzev u pogledu obrade greaka. Funkcija include() izdaje upozorenje pri emu se izvravanje programa nastavlja, dok funkcija require() generie fatalnu greku pri emu se izvravanje programa prekida nakon pojave greke. Ove dvije funkcije se koriste za kreiranje funkcija, headers-a, footers-a, ili elemenata koji se mogu ponovo koristiti na veem broju stranica. Na ovaj nain programer moe utedjeti znaajno vrijeme tokom rada na pisanju programa. To znai da se moe kreirati standardni header (zaglavlje) ili menu (meni) dokumenta koji bi mogli da se nalaze na svim web stranicama. Kada bude potrebno auriranje header-a (zaglavlja) u tom sluaju se moe aurirati samo data include datoteka. Kada se dodaje nova stranica na datom web site-u, jednostavno se moe promijeniti meni datoteka (menu file) umjesto da se auriraju linkovi na svim web stranicama. 3.1 Include() funkcija Funkcija include() uzima itav tekst iz neke odreene datoteke i kopira ga u datoteku koja koristi include() funkciju. Primjer 1 Pretpostavimo da imate standardnu header datoteku pod nazivom header.php. Da biste uvrstili ovu header datoteku na web stranicu, koristite za to include() funkciju, kao npr.: Welcome to my home page Some text

Primjer 2 Pretpostavimo da imamo jednu standardnu meni datoteku koju bi bilo potrebno koristiti na svim stranicama (include dokumenti obino imaju .php ekstenziju). Analiziraemo menu.php datoteku datu u nastavku: 3

http://www.w3schools.com/php/

Home | About Us | Contact Us

Potrebno je da sve tri datoteke, default.php, about.php, i contact.php ukljuuju menu.php datoteku. Slijedi kod u default.php: Welcome to my home page Some text

Ako pogledate izvorni kod datoteke default.php u browser- u (itau), onda e isti izgledati kao: Home | About Us | Contact Us Welcome to my home page Some text

Naravno, istu stvar bi morali da uradimo i u sluaju datoteka about.php i contact.php. Korienjem include datoteka, potrebno je samo da se aurira tekst u menu.php datoteci ako odluite da preimenujete ili promijenite poredak linkova, ili da dodate neku drugu web stranicu na site.

3.2 Require() funkcija require() funkcija je identina include() funkciji, osim to postoji razlika u nainu obradegreke.

prekinuto nakon pojavljivanja greke.

include() funkcija generie upozorenje, pri emu se program i dalje izvrava, dok require() funkcija ukazuje na fatalnu greku, a izvravanje programa e biti odmah

Ukoliko se ukljui datoteka pomou include() funkcije, a pri tom doe do pojave greke, tada bi se mogla dobiti sledea poruka o greci: PHP kod:

4

http://www.w3schools.com/php/

Poruka o greci:Warning: include(wrongFile.php) [function.include]: failed to open stream: No such file or directory in C:\home\website\test.php on line 5 Warning: include() [function.include]: Failed opening 'wrongFile.php' for inclusion (include_path='.;C:\php5\pear') in C:\home\website\test.php on line 5 Hello World!

Primjeuje se da se echo iskaz i dalje izvrava! To je posledica toga to Upozorenje ne zaustavlja dalje izvravanje programa. Na istom primjeru emo analizirati sluaj korienja require() funkcije. PHP kod:

Poruka o greci:Warning: require(wrongFile.php) [function.require]: failed to open stream: No such file or directory in C:\home\website\test.php on line 5 Fatal error: require() [function.require]: Failed opening required 'wrongFile.php' (include_path='.;C:\php5\pear') in C:\home\website\test.php on line 5

Echo iskaz se nije dalje izvravao zbog toga to je program zaustavljen nakon pojave fatalne greke. Preporuuje se korienje require(), a ne include() funkcije zbog toga to program ne bi trebalo da nastavi sa daljim izvravanjem, ako neke od datoteka nedostaju ili su pogreno imenovane.

5

http://www.w3schools.com/php/

3.3 PHP File Handling (PHP rukovanje datotekom) Fopen funkcija se koristi za otvaranje datoteka u PHP. Otvaranje datoteke

fopen() funkcija se koristi za otvaranje datoteke u PHP-u. Prvi parametar ove funkcijesadri ime datoteke koja e se otvoriti, a drugi parametar odreuje na koji e se nain datoteka otvoriti:

Datoteka se moe otvoriti na jedan od sledeih naina: Naini r r+ w w+ a a+ x x+ Opis Samo itanje, od poetka datoteke. itanje/pisanje, od poetka datoteke. Samo pisanje. Otvara i brie sadraj datoteke ili kreira novu datoteku ukoliko ona ne postoji. itanje/pisanje. Otvara i brie sadraj datoteke ili kreira novu datoteku ukoliko ona ne postoji Dodavanje. Otvara datoteku i pie do kraja datoteke, ili kreira novu datoteku ukoliko ona ne postoji itanje/dodavanje. uva sadraj datoteke pisanjem do kraja iste. Samo pisanje. Kreira novu datoteku. Vraa FALSE i greku ako datoteka ve postoji itanje/pisanje. Kreira novu datoteku. Vraa FALSE i greku ako datoteka ve postoji

Napomena: Ako fopen() funkcija ne moe otvoriti odreenu datoteku, ista e vratiti vrijednost 0 (false (pogreno)). Primjer Sljedei primjer prikazuje poruku ako se fopen() funkcijom ne moe otvoriti odreena datoteka:

3.4 Zatvaranje fajla 6

http://www.w3schools.com/php/

fclose() funkcija se koristi za zatvaranje otvorene datoteke:

3.5 Provjera kraja datoteke (Check End-of-file) Funkcija feof() se koristi za provjeru da li se stiglo do kraja fajla (EOF). feof() funkcija je korisna za prolaenje kroz podatke nepoznate veliine.if (feof($file)) echo "End of file";

Napomena: Ne moete itati iz datoteka otvorenih u w, a i x modu. 3.6 itanje datoteke red po red

fgets() funkcija se koristi za itanje jednog reda iz datoteke.Napomena: Nakon pozivanja ove funkcije, pokaziva e se pomjeriti na sljedei red u datoteci. Primjer U sljedeem primjeru je prikazano itanje datoteke red po red sve dok se ne doe do kraja datoteke:

3.7 itanje datoteke znak po znak Funkcija fgetc() se koristi za itanje pojedinanog znaka iz datoteke. Napomena: Nakon poziva ove funkcije pokaziva datoteke e se pomjeriti na sljedei znak. Primjer U narednom primjeru prikazano je itanje datoteke znak po znak sve dok se ne doe do kraja datoteke:

PHP Filesystem Reference Vie podataka o funkcijama PHP sistema datoteka (filesystem) se moe nai u PHP

Filesystem Reference.

8

http://www.w3schools.com/php/

4. Rad sa sistemom datoteka i serveromPHP File Upload (PHP postavljanje datoteke)Uz pomo PHP-a je mogue izvriti uitavanje (upload) datoteka na dati server. 4.1 Kreiranje Upload-file forme Omoguavanje korisnicima uitavanje datoteka iz forme moe biti veoma korisno. Sljedea HTML forma slui za uitavanje (uploading) datoteka: Filename:

U gore prikazanom HTML obrascu potrebno je obratiti panju na sljedee:

Atribut enctype u tag-u (oznaci) odreuje koji tip sadraja treba koristiti kada se alje (submit) ovaj obrazac. multipart/form-data se koristi kada ovaj obrazac zahtijeva binarne podatke, poput sadraja fajla koji treba uitati (upload). Tip=file atribut u oznaci odreuje da bi ulaz trebalo obraditi kao datoteku. Npr., kada se forma pogleda u browser-u, browse dugme e se nalaziti odmah do input polja.

Napomena: Omoguavanje korisnicima da uitavaju datoteke predstavlja veliki bezbjednosni rizik. Jedino korisnici od povjerenja koji imaju za to dozvolu mogu da vre uitavanje datoteka. 4.2 Kreiranje zapisa za uitavanje (upload) upload_file.php datoteka sadri kod koji omoguava uitavanje (uploading) datoteke:

Korienjem globalnog PHP $_FILES niza mogu se uitati datoteke sa klijentovog raunara na udaljeni server. Prvi parametar je ime input forme, a drugi indeks moe biti name (ime), type (tip), size (veliina), tmp_name ili error (greka). Kao npr.: $_FILES[file] [name] ime uitane datoteke. $_FILES[file] [type] tip uitane datoteke. $_FILES[file] [size] veliina u bajtima uitane datoteke. $_FILES[file] [tmp_name] ime privremene kopije datoteke koja je postavljena na server. $_FILES[file] [error] kod greke koja je nastala kao rezultat uitavanja datoteke.

Ovo je veoma jednostavan nain uitavanja datoteka. Iz bezbjedonosnih razloga trebalo bi dodati ogranienja u vezi sa tim koji su tipovi datoteka korisniku dozvoljeni da uita na server maini. 4.3 Ogranienja kod postavljanja (upload) datoteka U sljedeem prrimjeru dodajemo neka ogranienja u vezi datoteke koja se uitava. Korisnik moe jedino usnimiti .gif ili .jpeg datoteke, a veliina datoteke mora biti ispod 20 kb:

Napomena: Za IE da bi prepoznao jpg datoteke tip mora biti pjpeg, za FireFox to mora biti jpeg.

10

http://www.w3schools.com/php/

4.4 Snimanje postavljene datoteke U gore navedenim primjerima pravi se privremena kopija uitanih datoteka u PHP temp direktorijumu (PHP privremenom direktorijumu) na serveru. Privremeno kopirane datoteke se automatski uklanjaju kada se program izvri. Da bi se pohranila uitana datoteka potrebno ju je kopirati na nekom drugom mjestu:

Gore navedeni program provjerava da li datoteka ve postoji, a ukoliko ne postoji, datoteka se kopira u odreeni direktorijum. Napomena: Datoteka iz ovog primjera se snima u novom direktorijumu pod nazivom upload.

11

http://www.w3schools.com/php/

5. UPRAVLJANJE SESIJAMA U PHP-u5.1 PHP Cookiesta je Cookie?

Cookie se esto koristi za identifikaciju korisnika. Cookie je jednostavna datoteka koju

server postavlja na korisnikov raunar. Svaki put kada isti raunar trai neku stranicu pomou browser-a (itaa), on e takoe tom prilikom poslati i cookie. Sa PHP-om se mogu i kreirati i mijenjati vrijednosti cookie-ja. 5.2 Kako kreirati Cookie? Funkcija setcookie() se koristi za postavljanje cookie-ja. Napomena: Funkcija setcookie() se mora pojaviti PRIJE oznake. Sintaksasetcookie(name, value, expire, path, domain);

Primjer 1 U narednom primjeru definisaemo cookie pod nazivom user (korisnik) i dodijeliemo mu vrijednost Alex Porter. Takoe, odrediemo da li e vrijeme vaenja ovog cookieja istei nakon sat vremena:

.....

Napomena: Vrijednost cookie-ja se automatski URL kodira prilikom slanja cookie-ja i automatski se dekodira nakon primanja (da bi se sprijeilo URL kodiranje koristimo setrawcookie() funkciju). Primjer 2 Takoe moete postaviti vrijeme vaenja cookie-ja i na drugi nain. To je moda laki nain nego u sluaju kada se koriste sekunde.

.....

12

http://www.w3schools.com/php/

U gore navedenom primjeru vrijeme vaenja cookie-ja je podeeno na mjesec dana (60 sec * 60 min * 24 hours * 30 days). 5.3 Kako da promijenimo vrijednost cookie? PHP $_COOKIE promjenljiva se koristi za uvanje vrijednosti cookie-ja. U dolje navedenom primjeru prikazaemo vrijednost cookie-ja pod nazivom user:

U narednom primjeru koristiemo funkciju isset() kako bismo saznali da li je cookie postavljen.

5.4 Kako izbrisati Cookie? Prilikom brisanja cookie-ja potrebno je utvrditi da li je isteklo njegovo vrijeme vaenja. Primjer brisanja cookie-ja:

ta ako Browser NE podrava Cookies-je? Ukoliko data aplikacija radi sa browser-ima (pretraivaima) koji ne podravaju cookiesje, tada je potrebno koristiti druge metode da bi se proslijedila informacija sa jedne na drugu stranicu u datoj aplikaciji. Prosljeivanje podataka kroz forme je jedan od naina (forme i korisniki ulazni podaci su objanjeni ranije). U donjem primjeru forma prosljeuje korisnike ulazne podateke u welcome.php datoteku kada korisnik klikne lijevim tasterom mia na dugme submit (podnesi):

13

http://www.w3schools.com/php/Name: Age:

Pregled vrijednosti korisnikih ulaznih podataka u welcome.php datoteci se vri pomou sljedeeg koda: Welcome .
You are years old.

5.5 PHP Sessions (sesije) Promjenljiva PHP Sessions se koristi za pohranjivanje informacija ili za promjenu parametara korisnike sesije. Promjenljive sesije sadre informacije o jednom korisniku i dostupne su na svim stranicama u datoj aplikaciji.

PHP promjenljive sesijePostupak pri radu sa aplikacijom je sledei: prvo se otvori aplikacija, zatim se izvre neke izmjene u njoj i nakon toga se ista zatvori. Veoma slian postupak je i u sluaju session (sesije). Kompjuter zna ko je korisnik. On zna kada je korisnik pokrenuo aplikaciju i kada je zavrio aplikaciju. Meutim, kada je rije o Internetu tu postoji jedan problem: web server ne zna ko je korisnik i koje akcije korisnik preduzima zbog toga to HTTP adresa ne uva stanje sesije.

PHP session reava ovaj problem tako to omoguava pohranjivanje korisnikih podataka na serveru radi kasnijeg korienja (npr. korisniko ime (username), artikle za kupovinu, itd.) Meutim, informacija o sesiji je privremenog karaktera, a bie izbrisana nakon to korisnik napusti dati web site. Ako je potrebno stalno pohranjivanje korisnikih podataka moda e biti poeljno da se podaci pohrane u bazu podataka. Sessions (sesije) rade na osnovu kreiranja jedinstvenog id (UID) za svakog posjetioca, a promjenljive se pohranjuju na osnovu ovog UID. UID se pohranjuje ili u cookie-ju ili seprenosi kroz URL.

14

http://www.w3schools.com/php/

5.6 Pokretanje PHP Session Prije nego to se pohrane korisnike informacije o datoj PHP session (sesiji), potrebno je prvo pokrenuti samu sesiju. Napomena: Funkcija session_start() se mora pojaviti PRIJE oznake:

Gore prikazani kod e registrovati user's session (korisniku sesiju) sa serverom, omoguie postupak uvanja korisnikih informacija i odredie UID za tu user's session (korisniku sesiju). 5.7 Pohranjivanje promjenljive sesije Pravilan nain pohranjivanja i promjene promjenljivih sesije je putem korienja PHP $_SESSION promjenljive:

Rezultat gore navedenog koda je:Pageviews=1

U dolje navedenom primjeru kreira se jednostavni broja stranica (page-view counter). Funkcijom isset() se provjerava da li je views promjenljiva ve postavljena. Ako je views promjenljiva postavljena onda se moe uveati broja za jedan. Ako promjenljiva views ne postoji onda se kreira views promjenljiva i postavlja se na vrijednost 1:

5.8 Prekidanje sesije Ako se ele izbrisati neki session podaci, u tom sluaju se moe koristiti unset() ili session_destroy() funkcije. unset() funkcija se koristi za oslobaanje neke odreene session promjenljive:

Takoe, sesija se moe u potpunosti izbrisati korienjem session_destroy() funkcije:

Napomena: session_destroy() funkcija e resetovati datu sesiju pri emu e se izgubiti svi pohranjeni podaci o sesiji.

16

http://www.w3schools.com/php/

6. Slanje e-mail-ova direktno iz programa6.1 PHP mail() funkcija PHP mail() funkcija se koristi za slanje e-mail-ova iz programa. Sintaksa mail (to (prima), subject (predmet), message (poruka), header (zaglavlja), parameters (parametri)) Parametar to (prima) subject (predmet) message (poruka) headers (zaglavlja) Parameters (parametri) Opis Potrebno. Odreuje primaoca/primaoce mail-a Potrebno. Odreuje predmet mail-a. Napomena: Ovaj parametar ne moe sadravati bilo koje oznake za novi red. Potrebno. Odreuje poruku koja se alje. Svaki red treba biti odvojen sa LF (\n). Redovi ne bi trebalo da sadre vie od 70 oznaka Opciono. Odreuje dodatna zaglavlja, poput From (alje), Cc (Carbon copy) i Bcc (Blind carbon copy). Dodatna zaglavlja treba da budu odvojena sa CRLF (\r\n) Opciono. Odreuje dodatni parametar za program za slanje maila.

Napomena: Da bi mail funkcije bile dostupne, PHP zahtijeva da je email sistem instaliran i da je operativan. Program koji e se koristiti se odreuje konfiguracijom u php.ini fajlu. Vie o tome moe se nai PHP Mail reference. 6.2 PHP jednostavni E-mail Najednostavniji nain za slanje email-a pomou PHP-a je slanje tekstualnog email-a. U narednom primjeru prvo navodimo promjenljive ($to, $subject, $message, $from, $headers), a zatim koristimo te promjenljive u mail() funkciji za slanje e-mail-a.

6.3 PHP mail obrazac (PHP Mail Form) Uz pomo PHP-a se moe napraviti forma za povratne informacije (feedback-form) na datom website-u. U narednom primjeru prikazano je slanje tekstualne poruke na 17

http://www.w3schools.com/php/

odreenu e-mail adresu: