Domov arrow 2. PHP arrow 2.13. Delo z obrazci


2.13. Delo z obrazci Natisni E-pošta
Obrazci se uporabljajo v različnih primerih: naprimer za prijavo na zaščitene strani, za registracijo novih uporabnikov, za naročanje izdelkov v spletnih trgovinah, za vnos in posodobitev informacij v zbirki podatkov, pošiljanje povratnega odziva, …
Primer obrazca:

<form method="post" action="">
    <p>
        <label for="ime">Ime:</label>
        <input name="ime" id="ime" type="text" />
    </p>
    <p>
        <label for="email">Email:</label>
        <input name="email" id="email" type="text" />
    </p>
    <p>
        <label for="komentarji">Komentarji:</label>
        <textarea name="komentarji" id="komentarji" cols="60" rows="8"></textarea>
    </p>
    <p>
        <input name="poslji" id="poslji" type="submit" value="Poslji sporocilo" />
    </p>
</form>

Procesiranje obrazcev temelji na name atributu. Pri obrazcih sta pomembna tudi method in action atributa v začetni <form> znački. Atribut method določa način, kako obrazec pošlje podatke izvajajoči skripti in je lahko postavljen  na post ali na get. Atribut action pa pove, kam naj brskalnik pošlje podatke za obdelavo, ko klikneš na gumb za pošiljanje sporočila. Če je vrednost prazna, stran poskuša obdelati obrazec sama.

Najprej vzemimo, da je atribut method postavljen na get, atribut action pa postavimo na kontakt.php. Za primer vpišemo v zgornji obrazec naslednje podatke: za ime vpišemo Ivan, za e-mail E-poštni naslov je zavarovan pred nezaželeno pošto, za ogled potrebuješ Javascript in za komentar vpišemo "Lepo stran imate.". Ko kliknemo na gumb za pošiljanje obrazca, lahko v URL vrstici brskalnika opazimo naslednji naslov:

http://primer.si/kontakt.php?ime=Ivan&email=ivan%40primer.si&komentarji=Lepo+stran+imate.&send=Poslji+sporocilo

Vidimo lahko, da se podatki poslani z obrazcem nahajajo v brskalni vrstici za osnovnim URL-jem. Najprej je napisan name atribut enega od elementov obrazca, ki mu sledi znak za je enako in vsebina vnosnega polja. Pred prvim name atributom je vprašaj in pred vsemi ostalimi znak &. Vse po vprašaju je poznano kot poizvedbeni niz. URL-ji ne morejo vsebovati presledkov ali določenih znakov (kot je npr. smeško), tako da jih brskalnik zakodira kot šestnajstiške vrednosti v postopku imenovanem URL zakodiranje.

V primeru, da za metodo izberemo post in po izpolnitvi obrazca kliknemo na gumb za pošiljanje obrazca, se vsi podatki shranijo v superglobalno polje $_POST. Atribut name vsakega od obrazčevih elementov se uporabi za ključ polja. Če izpišemo to polje s funkcijo print_r(), dobimo naslednji izpis:

array([ime]=>Ivan, [email]=> E-poštni naslov je zavarovan pred nezaželeno pošto, za ogled potrebuješ Javascript , [komentar]=>Lepo stran imate.)

Metoda get pošlje podatke na zelo izpostavljen način in jih naredi ranljive za spreminjanje. Poleg tega nekateri brskalniki omejijo največjo dolžino URL-ja, tako da se jo lahko uporabi le za majhne količine podatkov. Metoda post je bolj varna in se lahko uporabi za večje količine podatkov. Privzeto PHP dovoljuje do 8MB poslanih podatkov.
Zaradi teh prednosti se običajno pri obrazcih uporablja post metoda. Get metoda se običajno uporablja pri iskanjih po zbirki podatkov.

 


© 2007-2008 PHP, MySQL, XML, OOP, varnost