Formularis - Post/Redirect/Get (ca)

Embed Size (px)

DESCRIPTION

Breu introducció al concepte/patró de disseny Post/RedirectGet

Citation preview

  • 1. PHP Formularis O com demanar coses que no ens interessen als usuaris

2. PHP

  • Amb formularis un usuari ens envia dades
  • Dades de l'usuari durant el moment de registrar-se

3. Usuari i contrassenya per fer el login 4. Fer cerques 5. Veure detalls d'un producte 6. Afegir producte al carrito 7. Enviar formulari de contacte 8. Pujar fitxers 9. ... 10. PHP

  • Per crear el formulari, google s el vostre amic

11. Tots els elements del formulari han d'estar inclosos dins l'etiqueta

12. action => pgina on s'enviaran les dades del formulari 13. method => get o post 14. PHP

  • method="get"
  • Per a consultes

15. Idempotents (peticions successives tenen el mateix resultat) 16. Les dades enviades es veuen a la URL 17. Per enviar dades a travs de GET, no cal enviar formularis, podem fer-ho directament afegint dades a la url:

  • veure.php?producte=pantalla&id=43

Es genera una petici de tipus GET al servidor 18. PHP

  • method="post"
  • Per a accions que modifiquin l'estat de l'aplicaci
  • Login / logout

19. Afegir productes al carrito 20. Les dades s'envien junt amb la petici, al navegador no es mostra 21. Successius reenviament del formulari pot portar problemes

  • No mola fer una compra per internet de 500, apretar F5 (actualitzar) i que tornem a fer la mateixa compra, no?

Es genera una petici de tipus POST al servidor 22. PHP

  • Post/Redirect/Get(o PRG)
  • Evitar el problema del doble reenviament de formularis

23. El principi s senzill: Desprs de tractar les dades que l'usuari ens ha enviat per POST, redirigir l'usuari a una altra pgina, fent una petici GET 24. Si desprs de la redirecci l'usuari refresca la pgina, es repeteix la ltima petici, que s la petici GET, que no causar problemes 25. PHP

  • Post/Redirect/Get (ii)
  • Per efectuar la redirecci, la millor manera s fer-ho a travs del protocol HTTP
  • Retornar codi d'estat302 Foundo303 See Other

26. Afegir la capalera HTTP Location, amb la URL de la pgina a la qual redirigir 27. Mostrar un missatge de redirecci amb un enlla a la pgina redirigida, per a aquells navegadors que no entenen els codis 302 o 303 No mostrar text abans de fer la redirecci, ja que no podrem enviar les capaleres