FORMES D'ENVIAMENT DE LES DADES D'UN FORMULARI. MÈTODES GET I POST. EXEMPLES


Quan un usuari omple un formulari en una pàgina web les dades cal enviar d'alguna manera. Anem a considerar les dues formes d'enviament de dades possibles: usant el mètode POST o usant el mètode GET. Has de conèixer com es generen formularis HTML abans de llegir aquest lliurament.

En l'exemple anterior l'acció que s'executarà quan l'usuari premi el botó "Enviar" (submit) serà l'enviament de les dades a la url especificada usant el mètode get.

Vegem l'aspecte d'un formulari qualsevol per fer-nos una idea general.

Aquest formulari consta de diversos camps que l'usuari se li sol·liciten com Nom, Cognoms, Correu electrònic, País i Missatge.Possiblement els noms dels camps en el codi HTML siguin del tipus nombre_user, apellidos_user, email_user, pais_user i msg.

Un formulari s'escriu en HTML. Si no tens clar com es generen formularis HTML, et recomanem llegeixis el curs HTML des de zero de aprenderaprogramar.com. Per exemple, aquest és el codi d'un formulari:

<! DOCTYPE HTML PUBLIC "- //W3C //DTD HTML 4.01 Transitional //EN" "http://www.w3.org/TR/html4/loose.dtd">

<Html>

<Head>

<Title> Exemple de l'ús de formularis - aprenderaprogramar.com </title>

</Head>

<Body>

<Form mètode = "obtenir" una acció = "action.php" >

Selecciona els teus interessos:

<br/>

<Input nom = "cbipeliculas" tipus = "checkbox" /> Pel·lícules

<br/>

<Input nom = "cbilibros" tipus = "checkbox" marcada = "marcada" /> Llibres

<br/>

<Input nom = "cbiinternet" tipus = "checkbox" /> Internet

</Form>

</Body>

</Html>

La diferència entre els mètodes get i post rau en la forma d'enviar les dades a la pàgina quan es prem el botó "Enviar". Mentre que el mètode GET envia les dades usant la URL, el mètode POST els envia de manera que no podem veure'ls.

Un resultat usant el mètode GET seria el següent:

En aquesta URL podem distingir diverses parts: http://aprenderaprogramar.com/newuser.php és l'adreça web en si.

El símbol? indica on comencen els paràmetres que es reben des del formulari que ha enviat les dades a la pàgina.

Les parelles dato1 = valor1, dada2 = valor2, dato3 = valor3 ... reflecteixen són el nom i el valor dels camps enviats pel formulari.

Per exemple: nom = Pepe, cognoms = Flors, etc. ens diu que el camp del formulari que s'anomena nom arriba amb valor "Pepe" mentre que el camp del formulari que s'anomena cognoms arriba amb valor "Flors"

Tenir en compte que per a separar la primera parella s'usa el símbol '?' i per a les restants el símbol '&'.

Un altre aspecte a tenir en compte és que determinats caràcters no són rebuts a l'URL de la mateixa manera exactament en què van ser escrits en el formulari. Per exemple, el valor del camp email que es rep en la URL és h52turam% 40uco.es, mentre que l'usuari en el formulari hi haurà introduït amb tota seguretat h52turam@uco.es . Com veiem, el caràcter @ ha estat substituït pels caràcters% 40.Aquestes equivalències s'introdueixen automàticament en la transmissió de dades a causa de que les URL no admeten determinats caràcters com lletres amb accents, arroves i altres. No t'has de preocupar per aquesta codificació, ja que si posteriorment rescatem els valors mitjançant altres mecanismes tornarem a obtenir el text original. Simplement, convé conèixer aquesta circumstància per no pensar que estan passant coses estranyes o errors.

Hem vist el resultat d'un enviament pel mètode get. En el cas d'un enviament de dades usant el mètode POST, encara que aquestes dades també seran enviats (d'una manera que podem denominar "oculta"), no els podrem veure a la URL. Per poder recuperar els valors dels camps en el cas d'un enviament amb el mètode post necessitaríem altres eines (per exemple valer-nos del llenguatge PHP per recuperar el valor d'aquests camps).

El resultat final amb els dos mètodes podem dir que és el mateix: la informació es transmet d'un costat a un altre. La diferència radica que amb el mètode GET podem veure directament els paràmetres passats ja que estan dins de la URL mentre que amb el mètode POST els paràmetres queden ocults i per rescatar cal usar altres eines.

Un exemple d'ús del mètode post seria aquest: <form action = "http://aprendreaprogramar.com/prog/newuser.php" method = "post" >

Quan fem servir el mètode post les dades enviades des del formulari no són visibles, però sí que són recuperables usant les instruccions adequades.

 

EXERCICI

Crea un arxiu HTML que contingui un formulari que contingui un checkbox (Voleu rebre factura?), Dos input ràdio (Home /Dona), tres input tipus text (Nom, Adreça, Email) i un ComboBox per forma d'enviament (normal, per avió o urgent), juntament amb un botó d'enviament. Estableix com url d'enviament la direcció recibe.php i mètode d'enviament get i comprova que es recuperen les dades enviades correctament a través de la url.