290 likes | 457 Views
11. PHP – 2.dio. Petlje, funkcije, rad s formama, $_GET, $_POST. Petlje u PHP-u. Petlje While Do-while For (iteracija)
E N D
11. PHP – 2.dio Petlje, funkcije, rad s formama, $_GET, $_POST M. Zekić-Sušac
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
Primjer upotrebe while petlje Primjer 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
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
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
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
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
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
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 datoteku Primjer: <?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
Ugrađene funkcije u php-u - nastavak • fopen() – otvara datoteku • fclose() – zatvara datoteku Primjer – 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
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
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
Primjer kreirane funkcije Rezultat će biti: Zdravo svijete! Moje ime je Pero Peric 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. M. Zekić-Sušac
Prosljeđivanje paramerara funkciji Primjer 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
Funkcija koja vraća vrijednost Rezultat primjera će biti: 1 + 16 = 17 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. 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
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
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
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: Prikaz forme u koju korisnik može unijeti ime i broj godina, te kliknuti na dugme Prikaz poruke, npr. “Dobrodošli Pero. Vi imate 30 godina.” $_POST se koristi za prikaz vrijednosti iz elementa forme M. Zekić-Sušac
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
$_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
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
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: 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
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
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
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
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
Prednosti i nedostaci $_POST Prednosti upotrebe $_POST: • Varijable se ne vide u URL polju • Varijable nisu ograničene po veličini Nedostaci: • 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
Literatura: • W3C, PHP Tutorial, http://www.w3schools.com/php/, 28.04.12. M. Zekić-Sušac