11. PHP – 2.dio

28
M. Zekić-Sušac 1 11. PHP – 2.dio Petlje, funkcije, rad s formama, $_GET, $_POST

description

11. PHP – 2.dio. Petlje, funkcije, rad s formama, $_GET, $_POST. Petlje u PHP-u. Petlje While Do-while For (iteracija) - PowerPoint PPT Presentation

Transcript of 11. PHP – 2.dio

Page 1: 11. PHP – 2.dio

M. Zekić-Sušac 1

11. PHP – 2.dio

Petlje, funkcije, rad s formama, $_GET, $_POST

Page 2: 11. PHP – 2.dio

M. Zekić-Sušac 2

Petlje u PHP-u

Petlje While Do-while For (iteracija)koriste se u PHP-u na isti način kao i u

JavaScript-u (sintaksa je ista). Jedina razlika je u tome što se varijable u uvjetu koji se provjerava označavaju sa znakom $ ispred naziva varijable.

(Za upotrebu ovih petlji pogledati predavanje o petljama u JavaScript-u)

Page 3: 11. PHP – 2.dio

M. Zekić-Sušac 3

Primjer upotrebe while petljePrimjer 4:<html><body><?php $i=1; while($i<=5) {

echo “Broj je " . $i . "<br />"; $i++;

} ?></body> </html>

Za provjeru ovog primjera kliknite na stranicu kolegija, izabrati Predavanje 11, Primjer 4.

Primjer 5 puta ispisuje poruku “Broj je” i vrijednost brojača.

Povećavanje brojača i za 1

Page 4: 11. PHP – 2.dio

M. Zekić-Sušac 4

Primjer upotrebe do-while petlje

<html><body><?php

$i=0;do {

$i++; echo " Broj je " . $i . "<br />";

} while ($i<5);

?></body> </html>

Primjer 5 puta ispisuje poruku “Broj je” i vrijednost brojača.

Page 5: 11. PHP – 2.dio

M. Zekić-Sušac 5

Primjer upotrebe for petlje

<html><body><?php for ($i=1; $i<=5; $i++)

{ echo "Hello World!<br />";

} ?></body> </html>

Primjer će ispisati poruku “Zdravo svijete!” 5 puta.

Page 6: 11. PHP – 2.dio

M. Zekić-Sušac 6

Petlja foreach

Petlja foreach koristi se kada se želi nešto ponoviti za elemente niza. U svakom prolazu kroz petlju, vrijednost trenutnog elementa niza dodjeljuje se varijabli $value, a pokazivač niza se pomiče za 1. U sljedećem prolazu kroz petlju, uzima se sljedeći element niza.

Sintaksa:foreach (array as value) { naredbe koje će se izvršiti; }

Page 7: 11. PHP – 2.dio

M. Zekić-Sušac 7

Primjer upotrebe foreach

<html><body><?php $studenti=array("Petar", “Marko", “Ivo");

foreach ($studenti as $value) {

echo “Ime studenta je: " . $value . "<br />"; }

?></body> </html>

Page 8: 11. PHP – 2.dio

M. Zekić-Sušac 8

Funkcije u PHP-u Funkcije su blokovi naredbi koji se po potrebi mogu pozivati i izvršavati U PHP-u postoji oko 700 ugrađenih funkcija koje se mogu koristiti u

skriptama. Popis ugrađenih funkcija može se vidjeti na stranici: http://www.w3schools.com/php/default.asp

Primjeri nekih često korištenih funkcija:1) Grupa: date/time funkcije – date(), check_date(),... date(“d”) – vraća brojčanu vrijednost dana u mjesecu, od 0 do 31 date(“D”) – vraća tekstualnu vrijednost dana u tjednu, sa prikazana prva tri

slova, npr. Mon, Tue, Wed.... Itd. date (“m”) – vraća brojčanu vrijednost mjeseca, broj od 1 do 12 date(“M”) – vraća tekstualnu vrijednost mjeseca, prva tri slova date(“t”) – vraća broj dana u promatranom mjesecu date(“F”) – vraća puni tekstualni naziv mjeseca date(“h”) – vraća koliko je sati po 12-satnom sustavu date(“H”) – vraća koliko je sati po 24-satnom sustavu ... Itd.Pogledati i ostale funkcije po potrebi.

Page 9: 11. PHP – 2.dio

M. Zekić-Sušac 9

Ugrađene funkcije u PHP-u

2) Grupa: funkcije za rad s datotekom – file(), file_exists(),... file_exists(“primjer.txt”) – provjerava da li postoji datoteka (pod

navodnicima se može navesti cijela staza) i vraća vrijednost 1 ako postoji, 0 ako ne postoji

Primjer:<?php

echo file_exists("test.txt"); ?>

Copy() – kopira sadržaj jedne datoteke u drugu datotekuPrimjer:<?php echo copy("source.txt","target.txt"); ?>

Primjer će ispisati na ekranu “1” ako datoteka postoji, a “0” ako ne postoji.

Primjer će sadržaj datoteke “source.txt” kopirati u datoteku “target.txt”

Page 10: 11. PHP – 2.dio

M. Zekić-Sušac 10

Ugrađene funkcije u php-u - nastavak

fopen() – otvara datoteku fclose() – zatvara datotekuPrimjer – pokazuje kako se može najprije

otvariti datoteka “test.txt” za čitanje, zatim izvršavati neke naredbe i zatvoriti datoteku:

<?php $file = fopen("test.txt","r"); //naredbe koje treba izvršiti

fclose($file); ?>

Parametar “r” znači da se datoteka otvara samo za čitanje. Za pisanje u datoteku trebali bi upisati parametar “w”)

Page 11: 11. PHP – 2.dio

M. Zekić-Sušac 11

Ugrađene funkcije u php-u - nastavak

U PHP-u postoje brojne druge ugrađene funkcije, kao npr.:

Matematičke funkcije Funkcije za rad s nizovima Funkcije za rad sa stringovima Kalendarske funkcije Funkcije grešaka FTP funkcije, HTTP funkcije, XML funkcije i brojne

druge.Sve se mogu pogledati na:http://www.w3schools.com/php/default.asp

Page 12: 11. PHP – 2.dio

M. Zekić-Sušac 12

Kreiranje vlastitih funkcija

Kao i u JavaScriptu, u PHP-u je moguće kreirati vlastite funkcije.

Funkcija započinje s ključnom riječi: “function”Sintaksa:

function ime_funkcije(){

naredbe koje funkcija izvršava}

Ime funkcije treba asocirati na ono što funkcija radi Ime mora biti jedna riječ (ako se želi koristiti više riječi, moraju

se spojiti u jednu, npr. writeMyName())

Page 13: 11. PHP – 2.dio

M. Zekić-Sušac 13

Primjer kreirane funkcije

Primjer 6:<html> <body><?php

function writeMyName() {

echo “Pero Peric"; }

echo “Zdravo svijete!<br />"; echo "Moje ime je ";

writeMyName(); ?></body> </html> Za provjeru ovog primjera kliknite na stranicu kolegija, izabrati

Predavanje 11, Primjer 6.

Rezultat će biti:

Zdravo svijete!

Moje ime je Pero Peric

Page 14: 11. PHP – 2.dio

M. Zekić-Sušac 14

Prosljeđivanje paramerara funkcijiPrimjer 7:<html> <body><?php function writeMyName($fname) {

echo $fname . " Perić.<br />"; }echo "Moje ime je "; writeMyName("Pero");echo "Moje ime je "; writeMyName("Marko");echo "Moje ime je "; writeMyName("Ivo");

?></body> </html>

Rezultat će biti:

Moje ime je Pero Perić.

Moje ime je Marko Perić.

Moje ime je Ivo Perić.

Page 15: 11. PHP – 2.dio

M. Zekić-Sušac 15

Funkcija koja vraća vrijednost

Primjer 8:<html><body><?php

function zbroji($x,$y) {

$total = $x + $y; return $total;

}$rez=zbroji(1,16);echo "1 + 16 = " . $rez;

?></body> </html> Za provjeru ovog primjera kliknite na stranicu kolegija,

izabrati Predavanje 11, Primjer 7 i 8.

Rezultat primjera će biti:

1 + 16 = 17

Funkcija prima parametre $x i $y, a vraća vrijednost varijable $total.

Vrijednost koju vraća funkcija možemo pohraniti u varijablu, npr. $rez

Page 16: 11. PHP – 2.dio

M. Zekić-Sušac 16

Rad s formama u PHP-u PHP skripta može koristiti elemente forme (obrasca) kreirane u

html-u. PHP skripta može rukovati elementima forme preko njihovog naziva dodijeljenog u atributu “name”.

PHP skripta se obično koristi za izvršavanje nekih naredbi koje se trebaju dogoditi nakon što korisnik klikne na dugme u formi.

Naziv php datoteke koja se treba izvršiti navodi se u naredbi <form> u atributu “action“

Obavezno je navesti i atribut “method” koji određuje da li će se koristiti metoda post ili get za preuzimanje vrijednosti varijabli iz forme.

Npr. <form action=“primjer.php” method=“post”>

Naziv .php datoteke koja se izvršava na klik korisnika na dugme

Metoda može biti “post” ili “get”

Page 17: 11. PHP – 2.dio

M. Zekić-Sušac 17

Primjer upotrebe PHP-a i forme

Primjer 9:1) Sadržaj HTML datoteke u kojoj se nalazi forma:<html> <body><form action= "dobrodoslica.php" method= "post"> Vaše ime: <input type="text" name= "ime" />

Broj godina: <input type= "text" name= "starost" /> <input type="submit" value= "Pošalji” />

</form></body> </html>

Ovu ćemo datoteku pohraniti pod nazivom “PHP_primjer9.html”

Page 18: 11. PHP – 2.dio

M. Zekić-Sušac 18

Primjer upotrebe PHP-a i forme - nastavak

2) Sadržaj .php datoteke “dobrodoslica.php” koja se izvršava klikom miša na dugme na prethodnoj formi:

<html> <body>

Dobrodošli <?php

echo $_POST["ime"]; ?>. <br /> Vi imate <?php

echo $_POST["starost"]; ?>

godina.</body> </html>

Za provjeru ovog primjera kliknite na stranicu kolegija, izabrati Predavanje 11, Primjer 9.

Rezultat ovog primjera je:

1) Prikaz forme u koju korisnik može unijeti ime i broj godina, te kliknuti na dugme

2) Prikaz poruke, npr. “Dobrodošli Pero.

Vi imate 30 godina.”

$_POST se koristi za prikaz vrijednosti iz elementa forme

Page 19: 11. PHP – 2.dio

M. Zekić-Sušac 19

Validacija forme

Kad god je to moguće, unos podataka u formu treba validirati.

Validaciju se preporuča raditi tako da se umjesto nove php datoteke, u atributu “action” poziva ista datoteka, u koju će se ispisati poruka o grešci ako unos nije ispravan, kako bi korisnik mogao vidjeti što nije dobro unio, i ponoviti unos

Page 20: 11. PHP – 2.dio

M. Zekić-Sušac 20

$_GET varijabla

Varijabla $_GET koristi se kada želimo preuzeti vrijednosti iz neke forme s pomoću metode GET

Varijabla $_GET je niz naziva varijabli i njihovih vrijednosti koje su poslane od strane HTTP GET metode.

$_GET preuzima vrijednosti koje su poslane iz forme s pomoću atributa method="get".

Informacija koja se šalje iz forme metodom GET vidljiva je svima i prikazuje se u polju za prikaz adrese IE (ili dr. preglednika).

Ograničenje na količinu informacije koja se može poslati iz forme metodom GET je 100 znakova.

Page 21: 11. PHP – 2.dio

M. Zekić-Sušac 21

Primjer upotrebe $_GET

Primjer 10.1) Sadržaj html datoteke “PHP_primjer10.html”<html><body><form action=“dobroslica_get.php" method="get"> Vaše ime: <input type="text" name=“ime" /> Broj godina: <input type="text" name=“starost" /> <input type="submit“ value=“Pošalji” /> </form> </body></html>

Nakon što korisnik u formu upiše podatke, npr. Pero, 30, te klikne mišem na dugme “Pošalji”, u polju za adresu IE preglednika prikazat će se:

http://laplace.mathos.hr/~mzekic/dobrodoslica.php?ime=Pero&starost=30

Page 22: 11. PHP – 2.dio

M. Zekić-Sušac 22

Primjer upotrebe $_GET - nastavak

2) Sadržaj php datoteke “dobrodoslica_get.php”:<html> <body>

Dobrodošli <?php

echo $_GET["ime"]; ?>. <br /> Vi imate <?php

echo $_GET["starost"]; ?>

godina.</body> </html>

Za provjeru ovog primjera kliknite na stranicu kolegija, izabrati Predavanje 11, Primjer 10.

Rezultat ovog primjera je:

1) Prikaz forme u koju korisnik može unijeti ime i broj godina, te kliknuti na dugme

2) Prikaz poruke, npr. “Dobrodošli Pero.Vi imate 30 godina.”

Page 23: 11. PHP – 2.dio

M. Zekić-Sušac 23

Kada koristiti $_GET?Kod upotrebe $_GET, svi nazivi i vrijednosti varijabli

prikazuju se u polju za adresu (URL) preglednika.

$_GET ne treba koristiti: Kada se unose podaci o lozinkama ili drugim

osjetljivim informacijama (npr. broj kreditne kartice) kod velikih vrijednosti varijabli (ograničenje je max.

100 znakova) $_GET treba koristiti:

Kada želimo stranicu staviti u bookmark (kako bi se odmah učitala sa unesenim podacima).

Page 24: 11. PHP – 2.dio

M. Zekić-Sušac 24

Varijabla $_REQUEST

Varijabla $_REQUEST sadrži vrijednost varijabli $_GET, $_POST i $_COOKIE.

Može se koristiti za dobivanje rezultata iz forme koji su poslani s pomoću metoda GET i POST.

Npr. u prošloj datoteci dobrodoslica_get.php mogli smo napisati:

Dobrodošli <?php echo $_REQUEST["ime"]; ?>.<br /> Vi imate <?php echo $_REQUEST["starost"]; ?> godina!

Page 25: 11. PHP – 2.dio

M. Zekić-Sušac 25

Varijabla $_POST

Varijabla $_POST koristi se kada želimo preuzeti vrijednosti iz neke forme s pomoću metode POST

Varijabla $_POST je niz naziva varijabli i njihovih vrijednosti koje su poslane od strane HTTP POST metode.

$_POST preuzima vrijednosti koje su poslane iz forme s pomoću atributa method=“post".

Informacija koja se šalje iz forme metodom POST je nevidljiva ostalim korisnicima

Ne postoji ograničenje u broju znakova koji se može poslati s pomoću metode POST.

Page 26: 11. PHP – 2.dio

M. Zekić-Sušac 26

Primjer upotrebe $_POST

Za upotrebu $_POST pogledati primjer 9 na str. 18 ovog predavanja.

Za provjeru primjera kliknite na stranicu kolegija, izabrati Predavanje 11, Primjer 9.

Primijetite da se, nakon što korisnik unese podatke i klikne na dugme, u polju za URL ne vide uneseni podaci, nego samo naziv .php datoteke koja je aktivna:

http://laplace.mathos.hr/~mzekic/dobrodoslica.php

Page 27: 11. PHP – 2.dio

M. Zekić-Sušac 27

Prednosti i nedostaci $_POST

Prednosti upotrebe $_POST: Varijable se ne vide u URL polju Varijable nisu ograničene po veličiniNedostaci: Nije moguće staviti stranicu s unesenim

podacima u bookmark.

Kao i kod $_GET, i kod $_POST moguće je vrijednosti varijabli prikazati s pomoću $_REQUEST.

Page 28: 11. PHP – 2.dio

M. Zekić-Sušac 28

Literatura:

W3C, PHP Tutorial, http://www.w3schools.com/php/, 28.04.12.