Foros del Web » Programando para Internet » PHP »

si existe POST ¿qué sentido tiene el metodo GET?

Estas en el tema de si existe POST ¿qué sentido tiene el metodo GET? en el foro de PHP en Foros del Web. pues eso, hay que validar todos los datos que el usuario envíe, pero si los parámetros enviados por método GET se pueden modificar a gusto ...
  #1 (permalink)  
Antiguo 23/05/2013, 03:36
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
si existe POST ¿qué sentido tiene el metodo GET?

pues eso, hay que validar todos los datos que el usuario envíe, pero si los parámetros enviados por método GET se pueden modificar a gusto del consumidor,

¿qué sentido tiene utilizarlo cuando podemos utilizar POST?
  #2 (permalink)  
Antiguo 23/05/2013, 03:58
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Respuesta: si existe POST ¿qué sentido tiene el metodo GET?

La cuestión es que los métodos deben ser utilizados para distintas cosas.

GET deberías ser utilizado para recoger datos del servidor. Por ejemplo en GET deberías indicar términos de búsqueda, filtros, páginas a mostrar, etc. De la spec de HTTP:

Código HTML:
Ver original
  1. In particular, the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval.

POST debería se utilizado cuando el cuerpo del mensaje que envías debe de ser almacenado, ya sea para la creación o actualización de algún recurso. Por ejemplo, el envío del nombre de usuario a registrarse o el cuerpo de un mensaje en un foro.

Otra cuestión que veo mucho por ahí y que me gustaría aclarar, es que un formulario no tiene porqué ser enviado sí o sí con POST. De hecho, hay casos que el GET es más conveniente, pues en estos casos los datos recogidos del usuario son utilizados para recoger algún recurso en particular. El ejemplo típico es el de la búsqueda (fíjate en Google).

Sobre lo de validar, que mas da que sea GET o POST. Tienes que validarlos siempre una vez los recibes.
Además, la creencia de que los datos POST no se pueden modificar es falsa, pues los datos POST van en la petición HTTP. Que no sea tan sencillo como modificar el querystring no significa que sea "seguro".

Espero que te haya quedado claro. Un saludo
  #3 (permalink)  
Antiguo 23/05/2013, 04:02
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: si existe POST ¿qué sentido tiene el metodo GET?

claro yo me refiero a que a la hora de validar los datos, si tienes entradas GET y entradas POST

¿no se duplican las validaciones? (a no ser que se use una misma clase para todas las validaciones, entonces ahí ya no digo más (: )
  #4 (permalink)  
Antiguo 23/05/2013, 04:07
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Respuesta: si existe POST ¿qué sentido tiene el metodo GET?

Pues no entiendo bien tu pregunta entonces.

Obviamente NO vas a enviar los mismos datos por POST que por GET, con lo cual las validaciones serán diferentes para cada uno. Pero validar hay que validar todas las entradas de datos a tu aplicación.

Si no te resuelve la duda, prueba a reformularla o a poner un ejemplo, porque no entiendo entonces cual es tu problema.

Saludos
  #5 (permalink)  
Antiguo 23/05/2013, 04:15
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: si existe POST ¿qué sentido tiene el metodo GET?

Cita:
Iniciado por SetheR Ver Mensaje
Pues no entiendo bien tu pregunta entonces.

Obviamente NO vas a enviar los mismos datos por POST que por GET, con lo cual las validaciones serán diferentes para cada uno. Pero validar hay que validar todas las entradas de datos a tu aplicación.

Si no te resuelve la duda, prueba a reformularla o a poner un ejemplo, porque no entiendo entonces cual es tu problema.

Saludos
mi duda es que a la hora de validar con php escribo en una clase todos los metodos para validar correo electronico, entradas de mensajes, usuarios, contraseñas etc. no?

pero teniendo en cuenta que los objetos en php son relativamente nueva puesto que no estuvo verdaderamente desarrollada hasta la 5.3 no?

antes de la 5.3 ya existían metodos GET y POST, los programadores según tengo entendido escribian el código php estructurado, apenas sin objetos, a la hora de validar recibian GET y POST con lo cual tenían que detectar eventos GET y POST para validar, lo que implicaba duplicar las validaciones.

ahora existe GET, entonces esa era mi pregunta, si se tiene el metodo POST que es algo mas seguro y así se evita duplicar detecciones de validación ¿qué sentido tiene utilizar GET?

todavía no he construido un buscador, cuando lo haga entenderé por qué mejor el GET, creo :D

pero aparte de para estas cosas que me dijistes ¿no tiene más aplicaciones GET?
  #6 (permalink)  
Antiguo 23/05/2013, 04:42
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Respuesta: si existe POST ¿qué sentido tiene el metodo GET?

Buff, sigo sin entender muy bien dónde ves tú un problema.

Aclaración : Los objetos en PHP ya existían desde bastante antes de la versión 5.3. No se dónde lo habrás leído pero no es así.

Suponiendo que tienes una clase para validar todas esas cosas, esa clase debería ser completamente agnóstica al método de entrada. Me explico:

Código PHP:
Ver original
  1. <?php
  2. class Validador {
  3.  
  4.     public function validarEmail($email){
  5.         //Aqui se valida y se retorna lo que tú consideres
  6.     }
  7. }
  8. ?>

Los métodos de validación reciben los datos a validar por parámetro, es decir, la clase no debe conocer por qué método se recibe el email. No le importa que venga por GET o POST, pues tu simplemente se lo pasa como parámetro.

Sobre la detección de la validación. No se exactamente a que te refieres.

En un registro, por ejemplo, el e-mail lo enviarás por POST, y no por GET. Yo nunca he visto duplicidades de las que (creo que) hablas, ni en programación estructurada ni en OO.

Al parecer, no has entendido mi primera respuesta.

GET ----> Pedir cosas al servidor. Para TODO. Una imagen, una sección, la lectura de un mensaje... En general, un recurso. Con GET se PIDE un recurso al servidor. Para leer este mensaje, envias una petición GET al servidor de forosdelweb con el id del tema.

POST -----> Para "enviar" datos al servidor, que éste utilizará para almacenar o actualizar algún recurso, ya sea crear/modificar datos de una base de datos, subir una imagen o cualquier otra cosa del estilo.

Saludos
  #7 (permalink)  
Antiguo 23/05/2013, 05:17
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: si existe POST ¿qué sentido tiene el metodo GET?

El protocolo HTTP no define los tipos de requests según si tú en PHP vas a validar o no.POST y GET son conceptos HTTP, no PHP.
Mientras sigas relacionando algo que proviene de HTTP, con tus cuestiones PHP, de validación, de clases, de programación estructurada.....no vas a ver la diferencia.

HTTP, para obtener una imagen de un servidor, hace una petición tipo GET.No POST.Ése es el sentido de GET y POST.
Y todo lo que use protocolo HTTP, sea PHP,Java,Python,Ruby,HTML,curl o lo que quieras, tendrá que lidiar con que se soportan varios tipos de requests, entre ellas, GET y POST.
  #8 (permalink)  
Antiguo 23/05/2013, 08:34
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: si existe POST ¿qué sentido tiene el metodo GET?

Un ejemplo donde yo entendí para qué usar un get es por ejemplo en los mensajes de validación que te llegan a tu correo.

"Si este link no funciona, cópialo y pégalo en tu barra de navegación"
Esa variable la capturo con get.

De hecho Get y Post indican su relación con el dato dentro de la variable.

Get... tomo un valor de donde esté y la meto en un sobrecito.
Post, el dato ya lo meten en el sobrecito... Yo tomo el sobrecito y lo envío al servicio de paquetería...

A mi burdo entender...
  #9 (permalink)  
Antiguo 23/05/2013, 08:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: si existe POST ¿qué sentido tiene el metodo GET?

Hola:

El método get también se utiliza para pasar datos por url, donde después de la dirección de la página se pone la interrogación cerrada (?) seguido por parejas de datos nombre_de_cariable=valor_de_variable arrejuntados por el carácter "&" ampersan..., se pueden enviar datos, pero tal vez sea más útil para cargar módulos de las páginas... por ejemplo en una paginación se suele indicar qué página debe cargarse (?pag=1)... el post no se refleja en la url y además permite enviar mayor cantidad de información (incluso archivos adjuntos).

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: metodo, post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:36.