|
Prelucrarea datelor printr-un formular
Inainte de a vorbi despre prelucrarea datelor printr-un formular, trebuie in primul rand sa cunoasteti sintaxa HTML pentru crearea unui formular.
Un formular este delimitat de elementul FORM care contine alte cateva elemente numite “controale”, care au o varietate de metode de a aduna informatii. Fiecare element din formular are un nume cat si o valoare, astfel incat datele transferate pentru procesare sa fie sub forma unor perechi nume/valoare.
Elementul FORM
<form [action=url] [method=get/post] [enctype=MIMEType] [onsubmit=script] [onreset=script] [acceptcharset=
set_caractere] [core] [international] [events]>
Elementele formularului
</form>
Elementul INPUT
<input [type=text|password|checkbox|radio|submit|image|reset|button|hidden|file] [name=nume]
[value=valoare] [checked] [disabled] [readonly] [size=latime] [maxlength=cuvinte_maxime] [src=url]
[alt=altText] [usemap=url] [align=left|center|right|justify] [tabindex=numar] [accesskey=keyCombo]
[onfocus=script] [onblur=script] [onselect=script] [onchange=script] [accept=set_caractere] [core] [international]
[events]>
Acest element input este cel mai important in utilizarea formularelor.
Explicarea valorilor Type ale elementului INPUT
*button/ Butoane personale/ Exemplu: <input type=”submit” name=”Buton” value=”Buton”>
*checkbox /Casete de validare /Exemplu: <input type=”checkbox” name=”nume” value=”valoare”>
*file/ Fisiere incluse /Exemplu: <input type=”file” name=”nume” value=”valoare”>
*hidden/ Elemente ascunse /Exemplu: <input type=”hidden” name=”nume” value=”valoare”>
*password /Casete de introducere a parolei /<input type=”password” name=”nume” value=”valoare”>
*radio/ Butoane radio/ Exemplu: <input type=”radio” name=”nume” value=”valoare”>
*reset/ Buton reset /Exemplu: <input type=”reset” name=”Reseteaza” value=”Reseteaza”>
*submit/ Buton trimite/ Exemplu: <input type=”button” name=”Trimite” value=”Trimite”>
*text /Caseta text/ Exemplu: <input type=”text” name=”nume” value=”valoare”>
Elementul SELECT
Acest element este folosit pentru crearea unei liste de optiuni, fie ca un meniu care se desfasoara, fie ca o caseta cu lista. Fiecare din optiunile din lista reprezinta un element OPTION.
<select [name=nume] [size=latime] [multiple] [disabled] [tabindex=numar] [onfocus=script] [onblur=script]
[onchange=script] [core] [international] [events]>
Elementele din select
</select>
<option [selected] [disabled] [value=valoare] [core] [international] [events]>Nume</option>
Exemplu select:
<select name=”test”>
<option value=”optiune 1”>Optiune 1</option>
<option value=”optiune 2”>Optiune 2</option>
<option value=”optiune 3”>Optiune 3</option>
<option value=”optiune 4”>Optiune 4</option>
</select>
<select name=”test” multiple size=”3”>
<option value=”optiune 1”>Optiune 1</option>
<option value=”optiune 2”>Optiune 2</option>
<option value=”optiune 3”>Optiune 3</option>
<option value=”optiune 4”>Optiune 4</option>
<option value=”optiune 5”>Optiune 5</option>
<option value=”optiune 6”>Optiune 6</option>
</select>
Elementul TEXTAREA
Acest element este asemanator cu cel text numai ca aici se poate tasta intr-o sectiune mult mai mare decat in cazul text.
<textarea [name=nume] [rows=nr_randuri] [cols=nr_coloane] [disabled] [readonly] [tabindex=numar]
[onfocus=script] [onblur=script] [onselect=script] [onchange=script] [core] [international] [events]</textarea>
Exemplu textarea:
<textarea name=”nume” cols=”40” rows=”10”>Text initial</textarea>
Exemplu de formular:
<form action="formular.php" method="post">
Nume: <input type="text" name="nume" value="" size=60 maxLength=15> <br><br>
Prenume: <input type="text" name="prenume" value=""> <br><br>
Varsta: sub 16 <input type="radio" name="varsta" value="sub16"> | peste 16
<input type="radio" name="varsta" value="peste16"> <br><br>
Parola dorita: <input type="password" name="parola" value=""> <br><br>
<input type="submit" name="Trimite" value="Trimite">
<input type="reset" name="Reseteaza" value="Reseteaza">
</form>
Puneti codul intr-un fisier formular.html, salvati si apoi vizualizati in explorer accesand
http://localhost/formular.html

Prelucrarea datelor din formular
Am vorbit pana acum despre formulare, cum sa le cream si ce elemente au.
Hai sa ne aducem aminte ca in interiorul etichetei <form> avem pus elementul action si method (care poate fi POST sau GET). In elementul action se pune calea catre scriptul PHP care prelucreaza datele iar in method se pune metoda prin care se vor prelucra datele atunci cand butonul “Trimite” este apasat.
POST
Aceasta metoda face ca datele trimise prin formular sa nu fie vizibile utilizatorului, sa fie trimise in spatele paginii web.
GET
Prin aceasta metoda, datele trimise prin formular sunt vizibile in URL (URL este adresa ce este afisata in browser)
Acum ca am creat formularul, avem pagina formular.html, haideti sa cream si pagina prin care aratam datele trimise prin formular.
Creati o pagina formular.php si introduceti codul urmator:
<?php
echo $_POST['nume'];
?>
Salvati si testati in browser accesand http://localhost/formular.html, completati casuta “Nume”, si apoi apasati butonul “Trimite”.
Observati ca in pagina formular.php ne este afisat numele introdus in casuta “Nume” din pagina anterioara, si anume formular.html.
Adaugam in continuare variabilele $_POST corespunzatoare formularului nostru, si apoi testam din nou.
<?php
echo 'Nume: '.$_POST['nume'].' <br>
Prenume: '.$_POST['prenume'].' <br>
Varsta: '.$_POST['varsta'].' <br>
Parola: '.$_POST['parola'].' <br>';
?>

Dupa cum vedeti, ne folosim de valoarea POST, iar datele nu sunt afisate decat daca le definim noi $_POST[‘nume’] in pagina formular.php.
Poate ca va intrebati de unde pun eu numele in interiorul variabilei $_POST.
Raspunsul consta in numele din interiorul elementelor din formular.
De exemplu, in formularul nostru avem input-ul de la nume asa:
<input type="text" name="nume" value="" size=60 maxLength=15>
Observati ca in campul name valoarea acestuia este nume. Acesta se plaseaza in variabila $_POST, in cazul nostru $_POST[‘nume’]
In input-ul pentru prenume avem <input type="text" name="prenume" value=""> iar acesta se plaseaza in $_POST asa: $_POST[‘prenume’] . . . si tot asa.
Observati campul value care nu are nimic definit.
Nu este nici o greseala, veti invata mai tarziu de ce am lasat gol acel camp.
Am cam terminat cu metoda POST, acum haideti sa lucram si sa ne familiarizam si cu metoda GET.
In acelasi formular din pagina formular.html, numai ca in eticheta <form>, in loc de method=”post”, vom pune
method=”get”.
Apoi in pagina formular.php, in loc de variabilele $_POST, vom pune variabile $_GET.
In caz ca nu ati inteles, deschideti pagina formular.html, modificati linia <form action="formular.php" method="post"> in <form action="formular.php" method="get">
Apoi deschideti pagina formular.php si modificati in:
<?php
echo 'Nume: '.$_GET['nume'].' <br>
Prenume: '.$_GET['prenume'].' <br>
Varsta: '.$_GET['varsta'].' <br>
Parola: '.$_GET['parola'].' <br>';
?>

Observati ca rezultatul este acelasi in pagina web, numai ca informatiile formularului sunt postate si in adresa
din browser (url) sub forma:
http://localhost/formular.php?nume=orice&prenume=on&varsta=peste16&parola=altaparola&Trimite=Trimite
De recomandat este sa folositi metoda POST, pentru ca este mult mai sigura.
Verificarea datelor trimise prin formular
Verificarea continutului trimis prin formular se face relativ foarte usor.
<?php
if(($_POST['nume'] == "") || (is_numeric($_POST['nume'])) ||
(strlen($_POST['nume']) < 5)) {
echo 'Campul nume nu a fost completat corect. <br>
<a href="formular.html">Apasa aici</a> pentru a te intoarce la formular.';
} else {
echo 'Nume: '.$_POST['nume'].' <br>
Prenume: '.$_POST['prenume'].' <br>
Varsta: '.$_POST['varsta'].' <br>
Parola: '.$_POST['parola'].' <br>';
}
?>
Dupa cum vedeti, ne folosim de constructia IF si ELSE, iar in interiorul instructiunii if avem conditiile
(momentan numai pentru casuta nume) si operatorii PHP invatati la inceputul tutorialului.
Conditia noastra if spune cam asa: daca variabila cu numele post este goala, ori daca este numerica, ori daca
numarul de caractere este mai mic de 5, rezulta bucla de cod din instructiunea if.
Daca toate acestea sunt indeplinite, atunci execut bucla de cod din instructiunea else.
|| = OR; $a || $b Returneaza true (adevarat) daca $a, $b sau ambele sunt true
(adevarate) si false (fals) in caz contrar.
Modificati valoarea lui method din pagina formular.html in post si apoi in pagina formular.php introduceti
scriptul de mai sus pentru a testa regulile pentru campul “Nume”.

Daca conditiile din if nu sunt nu rezulta true, atunci va rezulta acest mesaj.
In conditia if, puteti continua sirul de conditii . . de exemplu:
if( ($_POST['nume'] == "") || (is_numeric($_POST['nume'])) || (strlen($_POST['nume']) < 5) ||
($_POST['prenume'] == "") || ($_POST['parola'] == "")) etc etc
(is_numeric($_POST['nume'])) – aceasta parte ne spune daca valoarea campului nume este numerica.
Putem folosi si varianta in care dorim sa stim daca nu este numerica, si anume:
(!is_numeric($_POST['nume'])) observati ca am adaugat un ! pentru a nega (acest lucru si alte combinatii le
puteti folosi pe cele din operatorii PHP din inceputul tutorialului).
Pana acum am invatat cum sa postam valorile din formular de pe o pagina pe alta fara sa le stocam undeva.
Partea cu stocarea o sa o invatam putin mai incolo cand o sa studiem lucrul cu baza de date MySQL.
|