Odlicno, sad smo ipak poceli da razmotavamo klupkom problema.
Cela stvar se zamrsila jer smo posli od dva razlicita scenarija.
1. Ja sam posao od predpostavke da je PHP samostalan i da fajl NE sadrzi i formu koja salje podatke
2. Ti si posao od predpostavke da je forma SATAVNI DEO ovog PHP fajla.
U tvom slucaju, ti si potpuno u pravu, treba izbeci da se pri prvom startu PHP (pre nego sto korisnik uopste vidi formu) vrsi provera, jer u tom momentu, varijable "usename" i "password" stvarno NISU setovane.. Samim tim i logika provere mora biti drugacija. I tada stvarno treba:
- proveriti da li je taster "submit" kliknut
- ako jeste, proveriti da li su varijable "username" i "password" setovane uopste (mozda je forma pogresno napisana, pa jedne varijable i nema u kodu)
- ako su obe varijable setovane (dakle prisutne u formi) proveriti da li su sa nekim sadrzajem (nisu EMPTY() )
----
- Ako taster "submit" nije aktiviran, nema potrebe za drugim kontrolama, dok se to ne desi
---
U mom slucaju, prepostavka je bila da je forma u nekom drugom HTML fajlu i da poziva taj PHP. Tada mi ne treba kontrola "submit" dugmeta, ne bih ni dosao do PHP da "submit" nije kliknut.
U mom slucaju, ipak ostajem pri tvrdnji da trebaju obe kontrole:
- ISSET() da vidim da nije forma slucajno falicna pa nedostaje jedna ili dve varijable kao INPUT
- EMPTY() ako su varijable setovane, da nije jedna od njih prazna
Onak kod sa greskom u pisanju naziva varijable ne treba ni komentarisati...
Nadam se da smo sad generalno rascistili polje za zavrsetak diskusije. Ti si u pravu sa "submit" cekiranjem samo ako je forma UNUTAR php fajla, inace je to nepotrebno. Razlikovali smo se samo u hiptezi, gde se u momentu rada, nalazi forma (u samom php ili u posebnom HTML)
Ono sto nismo rascistili je zasto mislis da ISSET() ne treba da bude upotrebljen pre EMPTY() kontrole? Kako ces onda resiti situaciju ako je forma falicno napisana pa je programer zaboravio da napise red gde je postavljen recimo "password" INPUT ?
Ponavljam, nisam ekspet za PHP, pa mozda gresim, ali po meni je linija:
if ((!$_POST['username']) || (!$_POST['password'])) //proveri da li su polja pra
nedovoljna, jer polje moze biti prisutno, moze imati i neki sadrzaj, makar 10 blank karaktera, ali to nije validno u takvom slucaju. Zbog toga nedostaje EMPTY() funkcija po meni
Ajde da to jos zavrsimo, pa da iskoristimo lep suncani vikend