11. PHP – 2.dio
description
Transcript of 11. PHP – 2.dio
M. Zekić-Sušac 1
11. PHP – 2.dio
Petlje, funkcije, rad s formama, $_GET, $_POST
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)
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
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.
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.
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; }
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>
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.
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”
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”)
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
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())
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
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ć.
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
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”
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”
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
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
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.
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
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.”
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).
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!
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.
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
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.
M. Zekić-Sušac 28
Literatura:
W3C, PHP Tutorial, http://www.w3schools.com/php/, 28.04.12.