Spracovávanie dát z formulárov (PHP - časť 6)

Takže som sľúbil, že sa dnes budeme venovať nejakej praktickej záležitosti. Rozhodol som sa pre prípad, kedy je PHP veľmi často používané, a to spracovávanie dát z formulárov.

Pri formulároch v HTML dokumentoch poznáme dva typy odosielania dát - POST a GET. Metóda GET pripojí dáta za názov skriptu, ktorý ich spracováva. To sa uskutoční tak, že za názov skriptu sa vloží otáznik, meno premennej a jej hodnota. Ukážka:

 spracuj.php?cislo=5 

Takáta metóda nie je príliš vhodná kvôli tomu, že každý, kto má prístup k dátam vášho serveru, vidí, ktoré stránky si prezeráte a s nimi aj parametre metódy GET. V prípade, že sú v nich nejaké dôležité premenné, ako napríklad heslá, mohlo by to mať nežiaduce účinky. preto je preferovanejšou metódou POST. V tomto prípade je absolútne bezpečné prenášať akékoľvek dáta, pretože tieto nie sú nijak viditeľné. Ovšem, niekedy sa môžete dostať do situácie, že budete musieť použiť aj metódu GET, vtedy si však musíte dávať pozor, ako ju implementujete. Najlepšie je použiť nejaké kódovanie.

Aký typ metódy sa má použiť zadáte browseru vložením parametru METHOD do tagu FORM a parametrom ACTION zasa určíte skript, ktorý má dáta spracovať:

Ak chceme odovzdávať hodnoty skriptu, musíme ich pomenuvávať v celom formulári. Ukážeme si jednoduchý typ formuláru, ktorý obsahuje štyri položky - meno, priezvisko, vek a e-mail:


Meno: 
Priezvisko:
Vek:
E-mail:

Vyplnením formuláru a kliknutím na tlačítko "Odošli" odošleme dáta skriptu spracuj.php. Tento skript už s nimi urobí, čo uzná za vhodné, resp. čo mu programátor implementoval.

PHP skripty nerozlišujú rozdiely medzi dátami zaslanými metódou GET a metódou POST. Všetky odoslané premenné sú aktivované automaticky a prístupné okamžite vášmu skriptu. Meno každej premennej získate pridaním znaku $ pred meno, ktoré bolo pre položku určené vo formulári. To znamená, že hodnota položky "priezvisko" z formulára bude uložená v premennej $priezvisko. Získané údaje môžeme využiť podľa potreby, napríklad ich vypísať:

  

Ďalšou možnosťou je zaslať údaje na e-mail. Na to nám poslúži funkcia mail(). Má štyri parametre, pričom posledný je nepovinný. Prvý parameter je adresát, druhý predmet a tretí samotné telo e-mailu. Ak chcete, môžete využiť nepovinný štvrtý parameter, kde je možné špecifikovať prídavné parametre. Nám stačí využiť zatiaľ prvé tri parametre, ak chcete aj ten štvrtý, odporúčam pozrieť si manuál:

  

Čo však prípade, že chceme z formuláru odoslať údaje typu SELECT, kde ich môže byť označených viac? Vtedy musíme využiť polia. Formulár môže vyzerať napr. takto:

 

V skripte spracuj.php budeme mať pole $zamestnanie, ktoré bude mať toľko prvkov, koľko sme v menu označili, pričom v každom prvku bude uložená jedna položka. Položky sú indexované od 0:

 n"; 
} 
?> 

Nabudúce si ukážeme ako ukladať dáta do súborov.

Developer,
Stiahnuté z Developer.sk