traži:  
 php.com.hr >

(...nastavak)
 


Ovim kodom u varijablu $arr_komandna_linija spremao sav sadržaj komandne linije tako da svaki element niza sadrži string vrijednost između dva znaka &. Ovime će u nultom elementu toga niza biti naša kontrolna riječ koju kasnije možemo provjeravati, a u isto vrijeme možemo imati i dodatne varijable za kasnije korištenje u skripti. Ukoliko se u query stringu nalazi samo kontrolna riječ bez znaka & u nultom elementu će se i dalje nalaziti kontrolna riječ. Ukoliko je query string prazan znakom @ smo onemogućili javljanje greške i u switchu će se obaviti default grana, tj. vratiti će se poruka 'A tko si ti?'.

Za izlučivanje smo koristili funkciju

explode($str_znak_odvajanja , $str_koji_zelimo_razdvojiti)

Ova funkcija rastavlja $str_koji_zelimo_odvojiti tako da u niz vraća dijelove tog stringa koji su u njemu bili odvojeni sa $str_znak_odvajanja.

Da malo ovo ilustriram.

Imamo string :

Maja,Ivana,Matea,Branka,Ana

I želimo ga razdvojiti tako da je svako ime odvojeno tj. želimo imati ovo:

Maja
Ivana
Matea
Branka
Ana

Za to koristimo explode funkciju na slijedeći način:

 

$str_imena=' Maja,Ivana,Matea,Branka,Ana';

$arr_imena=explode(',',$str_imena);

 

Sada se u $arr_imena nalaze slijedeće vrijednosti

 

$arr_imena[0]='Maja'

$arr_imena[1]='Ivana'


Vratimo se našoj skripti.

Ostatak koda u njoj funkcionira isto kao i prvobitnom primjeru.

Sada će ako samo dodamo ovaj kod na kraj skripte

http://www.webmajstori.net/visenamjenska.php?webmajstori&kreso=123

vratiti:

 

Vraćena vrijednost nakon provjere je
To su isto majstori

Sadržaj query stringa
webmajstori&kreso=123

Provjera postojanja varijable putem isset funkcije
varijabla kreso postoji
varijabla webmajstori ne postoji

 

Višenamjenska stranica korištenjem kontrolne varijable

Ovo je jednostavnija metoda implementacije višenamjenskih stranica. Ideja je koristiti varijablu koja se daje skripti preko komandne linije. Ova varijabla (zapravo njena vrijednost) određuje što će se prikazivati na stranici. Kao dodatno pravilo koje se uvodi radi jednostavnosti same skripte i sigurnosti aplikacije je određivanje akcije ukoliko kontrolna varijabla ne postoji. U ovoj skripti u toj situaciji se prikazuje nešto kao početna stranica na kojoj se nalaze linkovi na druge moguće slučajeve. Problem (ili prednost) kod ovakvog rješenja je da će se ta početna stanica prikazivati i u slučaju da korisnik sam promijeni vrijednost kontrolne varijable u nepostojeću (nepodržanu) vrijednost ili ju izostavi u cijelosti.

Evo skripte:

 

<?

// visenamjensak stranica koristenjem kontrolne varijable

// kontrolna varijabla : $kon

switch (@$kon){

case 1:

echo "Gledate stranicu 1<br>";

echo "<a href='$PHP_SELF'>Povratak na poeetnu stranicu</a>";

break;

case 2:

echo "Gledate stranicu 2<br>";

echo "<a href='$PHP_SELF?kon=33'>Povratak na poeetnu stranicu</a>";

break;

case 3:

echo "Gledate stranicu 3<br>";

echo "<a href='$PHP_SELF'>Povratak na poeetnu stranicu</a>";

break;

default:

echo "<h2>Poeetna stranica </h2>";

echo "<p>Odaberite jednu od stranica<br>";

echo "<ul><li><a href='$PHP_SELF?kon=1'>Stranica 1</a></li><li><a href='$PHP_SELF?kon=2'>Stranica 2</a></li><li><a href='$PHP_SELF?kon=3'>Stranica 3</a></li><ul>";

echo "</p>";

}

?>


Rezultat skripte ovisi o stanju kontrolne varijable, ali ilustracije radi promotrite ove situacije

Za

http://www.host.com/skripta.php

Rezultat izgleda:

 

Početna stranica

Odaberite jednu od stranica

Stranica 1

Stranica 2

Stranica 3


Za

http://www.host.com/skripta.php?kon=1

Rezultat izgleda:

 

Gledate stranicu 1
Povratak na početnu stranicu

 

Za

http://www.host.com/skripta.php?kon=33

Rezultat izgleda:

 

Početna stranica

Odaberite jednu od stranica

Stranica 1

Stranica 2

Stranica 3


Idemo analizirati kod:

Cijela skripta se zapravo sastoji od jednog 'velikog' switcha koji odlučuje što se obavlja ovisno o kontrolnoj varijabli. Kontrolna varijabla u ovoj skripti je $kon.

Ova varijabla ne mora postojati da bi skripta radila. Ovo je moguće zato što je u switchu korišten znak @ koji isključuje prikaz greške koja bi se prikazala u situaciji da kontrolna varijabla ne postoji. Ovako će se u slučaju da ona ne postoji obaviti default grana switcha. Ista grana će se obaviti i ako trenutna vrijednost kontrolne varijable nije ponuđena niti u jednom caseu.

Ostatak skripte objašnjava sam sebe. U defaultu se prikazuje popis svih ostalih mogućih odabira za ovu skriptu, a u svakom caseu se obavljaju radnje specifične za taj odabir.

U svakom case je također ponuđen povratak na početnu stranicu. Linkovi se razlikuju u svakom od njih čisto ilustracije radi.

Mogući povratci su :

<a href='$PHP_SELF'>Povratak na pocetnu stranicu</a>

Ovim linkom se stranici ne daje kontrolna varijabla i iz već objašnjenih razloga se obavlja default grana switcha. Ovo je ujedno i najbolji način vraćanja korisnika na početnu stranicu.

<a href='$PHP_SELF?kon=33'>Povratak na poeetnu stranicu</a>

U ovom primjeru se skripti daje nepostojeća (neponuđena) vrijednost (stanje) kontrolne varijable. Pošto vrijednost ne postoji obavlja se default grana switcha. U ovoj situaciji se može postaviti bilo koja neponuđena vrijednost kontrolne varijable. Ova metoda vraćanja možda nije najbolji izbor. Naime, što ako se tokom vremena poveća broj mogućih stanja kontrolne varijable? Bit ćete prisiljeni mijenjati cijelu skriptu.

Moguća stanja kontrolne varijable mogu biti bilo što. U ovom primjeru su korišteni cijeli brojevi radi jednostavnosti. Naime, mogućnost greške je mnogo veća ukoliko su moguća stanja neki veliki stringovi.

Normalno, odabir mogućih vrijednosti ostavljam vama, ali pri odabiru je potrebno uzeti u obzir neke sigurnosne konsideracije. Ukoliko se koriste integer vrijednosti militantni korisnik uvijek može vrlo lako pogoditi stanje, dok će kod korištenja stringova imati malo više problema oko pogađanja stanja. U svakom slučaju, odabir je na vama.

 

Zadaci:

1.Ispraviti formu iz primjera 31. Potrebno je dodati validaciju (ime i prezime moraju sadržavati samo tekst, email mora sadržavati znak @) te popraviti bug oko unosa 0 u bilo koje polje

2.Napraviti formu koja će od korisnika tražiti da unese svoje ime, prezime, mail, URL svog homepagea te neki tekst. Potrebno je obaviti sve validacije polja i nakon nih ukoliko su uspješno obavljene ispisati tekst iz tekst polja tako da svaki novi red u polju bude zamijenjen <br> tagom te da se niz nakova :) zamijeni sa riječi SMAJLI.
Dodatno možete omogućiti da se uneseni tekst između [vazno] neki tekst [/vazno] ispiše boldano.  



PHP
 © 2004 - 2008 php.com.hr