Mai jos este un exemplu de formular ce poate fi folosit pentru autentificarea (logarea) utilizatorilor. Deocamdata nu contine decat elementele de baza si verificari simple, tocmai pentru a evidentia modul de lucru cu formulare in PHP. Codul contine comentarii in care sunt explicati pasii urmariti.
In mare, sunt executati urmatorii pasi:
se verifica daca a fost facut submit
Ar putea fi putin derutant faptul ca portiunea de cod PHP se afla in acelasi fisier cu formularul HTML. Intrebarea fireasca ar fi: "cum stie serverul cand sa prelucreze datele din formular?".
Ideea este ca acea portiune de cod PHP se executa la fiecare afisare a paginii. De fapt nu toata, ci doar prima parte. Cand se incarca pagina (in urma unui click sau refresh), pe langa codul HTML static se returneaza si rezultatul codului PHP. In cazul nostru, codul PHP consta in 2 atribuiri de variabile si un if mare. Atribuirile se executa mereu (la fiecare afisare), la fel si if-ul, doar ca rezultatul comparatiilor este adevarat doar atunci cand datele din formular au fost trimise.
Cu alte cuvinte, acel if va fi evaluat true doar cand utilizatorul face submit la formular - deci prelucrarea datelor se va face doar dupa ce utilizatorul face click pe "Login".
daca nu a fost facut submit, e simplu: scriptul pur si simplu afiseaza codul HTML static (un formular HTML).
Dupa ce s-a incarcat pagina, utilizatorul va putea introduce datele in formular si va putea da submit. Atunci cand se da submit, se face un request POST catre aceeasi pagina si se executa inca o data codul PHP din cadrul fisierului, de aceasta data insa cu informatiile actualizate
cand se face submit, se intra pe ramura lui if unde se executa mai multe operatii (in cazul nostru doar 2). Dupa executia operatiilor, se va afisa apoi codul HTML static, precum si rezultatul secventei de cod de la final
Nota: este foarte important sa se inteleaga mersul lucrurilor, cum este tratata pagina in fiecare situatie si cum se ajunge sa se execute fiecare portiune de cod. Daca aceste aspecte nu sunt clare nu veti putea scrie formulare de unii singuri.
Continuand cu explicarea codului, iata care sunt operatiile care se executa la submit:
se valideaza datele (se verifica daca au fost introduse valori): if( !isset( $_POST[ 'user' ] ) ...
se verifica daca numele de utilizator si parola sunt corecte: if( $erori == 0 ) ...
Daca sunt corecte, atunci se face o redirectionare catre o pagina ce poate fi accesata dupa autentificare. Redirectionarea se realizeaza folosind etichete HTML, desi exista o modalitate mai eleganta de a o realiza (dupa cum veti vedea in lectia Headere).
Codul este expus mai jos. Aveti si posibilitatea sa descarcati scriptul (mai jos) si sa-l incercati pe serverul vostru local.
Cod: Selectaţi tot
0 ) { echo '
', $mesaj, '
'; } ?>
Descarcati fisierul PHP si incercati-l pe serverul vostru
Formulare "in real life" - exemple de site-uri care folosesc formulare
Mai jos sunt incluse o serie de formulare folosite in site-uri live. Veti fi surprinsi poate sa observati ca majoritatea site-urilor folosesc formulare si ca o mare parte din activitatea de navigare pe internet presupune folosirea formularelor.
La randul vostru, ca dezvoltatori web, voi insiva veti construi foarte des formulare si veti scrie codul de prelucrare/manipulare a datelor provenite din formulare.
Exemplele de mai jos nu prezinta decat partea formala, codul HTML al formularelor. Partea de programare (codul efectiv care face prelucrarea) nu este disponibila, fiind gazduita de fiecare site in parte. Rolul acestor exemple este de a va da o idee despre cum sunt folosite formularele si cu ce ocazii, ce elemente sunt intrebuintate si care este comportamentul browserului pentru fiecare tip de formular (GET/POST).
Analog se poate construi un formular pentru Google. Practic, trebuie schimbat decat atributul action din formular (pus URL-ul specific Google: http://www.google.com/search), intrucat cele doua motoare de cautare accepta acelasi parametru GET (numit simplu q) pentru textul de cautat.
Formularul de cautare este disponibil mai jos:
La fel ca mai sus, formularul foloseste metoda GET, ceea ce ofera o facilitate: utilizatorul poate introduce singur, in URL, textul de cautat. Dati Cauta si verificati adresa paginii care se deschide.
Formularul de cautare este disponibil mai jos: