Foros del Web » Programando para Internet » PHP »

Pasar Datos por Post

Estas en el tema de Pasar Datos por Post en el foro de PHP en Foros del Web. Hola Amigos, estoy haciendo una web modular, los módulos los llamo de la siguiente forma index.php?mod=modulo Hace unos dias, Gatorv me mostró la forma de ...
  #1 (permalink)  
Antiguo 22/04/2008, 12:42
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Pasar Datos por Post

Hola Amigos, estoy haciendo una web modular, los módulos los llamo de la siguiente forma

index.php?mod=modulo

Hace unos dias, Gatorv me mostró la forma de pasar estos datos desde un formulario por Get

Código HTML:
<form method="get" action="index.php">
<input type="hiden" name="mod" value="modulo" />
Resto del form
</form> 
Pero si quiero pasar esos datos por post no funciona, porque no es por la URL, entonces ¿cómo podría hacerlo?

Gracias.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #2 (permalink)  
Antiguo 22/04/2008, 13:03
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Re: Pasar Datos por Post

cambia esto:
method="get"
por esto:
method="post"
__________________
Half Music - www.halfmusic.com
  #3 (permalink)  
Antiguo 22/04/2008, 13:10
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Re: Pasar Datos por Post

Hola Pato12, gracias por responder,

No funciona así, es por eso mi pregunta, cuando lo hago como mostré (por get) con un campo de tipo hidden puedo poner los parámetros, ya que estos viajan por la URL.

Mi pregunta es como los paso por Post, se que debo cambiar el método, pero mi pregunta es como paso los parámetros, ya que si los paso por Post estos no viajan porla URL.

Me hago entender?

Es decir, mi problema radica en que es una web modular, por tanto no puedo solo decir que lo procese tal_archivo.php, sino que debo construir la url para llamar al módulo que me procesa la info.

Gracias.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #4 (permalink)  
Antiguo 22/04/2008, 13:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Pasar Datos por Post

ahh.... tu lo ke kieres es tal pakete POST, pasarlo a otro PHP...

kreo ke con PHP, y sin FORM (post) no se puede

y segun tu idea... es, pasar algunos parametros (hidden) por otras URL, sin necesidad de usar FORM... o aclaranos la duda
  #5 (permalink)  
Antiguo 22/04/2008, 14:29
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Re: Pasar Datos por Post

Bueno, tratare de aclararlo lo mas posible.

Si tengo dos archivos en una misma carpeta

index.php (con el form)

procesa.php (recibe los datos del form)

Puedo tranquilamente hacer

Código HTML:
<form action="procesa.php" method="post">
</form> 
No hay problema, igual lo podría hacer por Get.

Aclaro, no solo si esta en lamisma carpeta, si es en otra solo sería poner action="carpeta/procesa.php"

Ahora, el problema es que la web que estoy haciendo es modular (como la del tutorial de zona php o la de las faqs del foro)

En este tipo de webs, la página principal siempre es la misma y solo carga los módulos necesarios.

Las URL se forman así index.php?mod=modulo

Por tanto cuando envío datos a través de un formulario, y lo hago por Get, lo hago poniendo los parámetros extras en un input de tipo hidden.

Ejemplo

Código HTML:
<form method="get" action="index.php">
<input type="hidden" name="mod" value="modulo" />
<input type="text" name="dato" />
</form> 
Esto me daría la URL así index.php?mod=modulo&dato=aquivaeldato

Es decir, con ayuda del input hidden puedo formar la URL y paso mis datos por ahi, y los recibo por Get.

Ahora, la pregunta es ¿cómo puedo hacer lo mismo, pero pasando los datos por post?

Es decir, ya no tengo la opción de formar la URL con ayuda de los campos hidden.

Es una duda que me surgió, igual podría pasar los datos por Get y ya, pero me gusta aprender, y además de ser posible preferiría pasarlos por Post.

Mil Gracias.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"

Última edición por lucasan; 22/04/2008 a las 14:50
  #6 (permalink)  
Antiguo 22/04/2008, 14:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Pasar Datos por Post

claro... claro, es una manera de ocultar la informacion a traves del POST

bueno, creo que ya sabes (obvio) que la unica forma de pasar informacion por el motodo POST del HTTP es usando FORM... o algun tipo de transaccion via sockets?

en fin... que dudas???

recuerda que por "algo" estan tan diferenciados estos dos metodos GET/POST
aunque ya sabes, igual... que no son necesarias las FORM para crear variables GET

simplemente con una URL foo.php?candy=bar ((y tu lo sabes...

personalmente dejame decir, que no seria bueno andar por ahi... mandando informacion POST tras POST en cada pagina ke necesites.... al menos no, si puedes hacerlo con GET, suerte!!
  #7 (permalink)  
Antiguo 22/04/2008, 14:41
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Pasar Datos por Post

No te entiendo muy bien, pon tu codigo mejor.

NOTA: hiden, se escribe asi hidden
  #8 (permalink)  
Antiguo 22/04/2008, 15:22
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Pasar Datos por Post

POr post tambien usa los campos hidden, como lo hacías con GET.
Cuando recibas el formulario por POST haces algo como:

Código PHP:
// CODIGO QUE PROICESA EL FORMULARIO
 
// YA SE TERMINÓ DE PROCESAR...
 
// DIRECCIONEMOS:
 
$modulo $_POST['modulo'];
 
Header("location: index.php?mod=".$modulo); 
Es a esto a lo que te referías o estamos hablando de dos cosas distintas?
Espero tu confirmación

Saludos
  #9 (permalink)  
Antiguo 22/04/2008, 16:05
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Re: Pasar Datos por Post

No creo que hablemos de lo mismo Usermax, te cuento:

Tengo un formulario en un modulo


Código HTML:
<form method="get" action="index.php">
<input type="hidden" name="mod" value="procesa" />
<input type="text" name="dato1" />
<input type="text" name="dato2" />
<input type="submit" value="enviar" />
</form> 
Así lo envío a que me lo procese el módulo llamado procesa, es decir la URL queda index.php?mod=procesa

en procesa lo recibo normalmente

Código PHP:
$dato1 $_GET['dato1'];
$dato2 $_GET['dato2']; 
Sin problema, los inputs de tipo hidden se encargan de enviar los parámetros correctos por url para poder

1. Llamar al módulo correcto.
2. pasar los datos del form a ese módulo.

Ahora, si lo paso por Post, no me va a construir la URL con los input hidden (pues POST no pasa datos por URL)

Una solución en teoría sería

Código HTML:
<form action="index.php?mod=procesa" method="post">

Los demas datos del form

</form> 
Pero digo en teoría porque no funciona así, es por eso que hace un tiempo Gatorv me enseñó como hacerlo (como lo he contado aquí) pero solo por Get.

RESUMO: El problema en si no está en enviar o recibir los datos por POST sino en construir la URL para llamar al módulo que los procesa.

Me gustaría poder hacerlo por Post ya que no me gusta la idea de que esos atos vayan por Url, son datos importantes y ya ustedes saben lo que esto puede implicar, si hay un sniffer o algo similar.

Gracias una vez mas, por todo el interés que ponen en este asunto.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #10 (permalink)  
Antiguo 22/04/2008, 16:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Pasar Datos por Post

hombre... yo ya he hablado (descrito) bueno, en mi opinion es obvio que con el metodo POST no se crean la URL, pero que... aun no has intentado hacerlo con method="post"??? NO hay otra forma, amigo....

tampoco (haciendolo con POST) hay forma de construir la URL que necesitas... lo siento :(
  #11 (permalink)  
Antiguo 22/04/2008, 16:34
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Re: Pasar Datos por Post

Hola pateketrueke,

Si ya lo he intentado con method="post", como dije arriba el problema no es para enviar y recibir lo datos sino para construir la url necesaria para llamar al módulo que procesa la info.

Bueno, está complejo el asunto.

Gracias por su interés, si encuentro una respuesta la pondré, o si alguien la conoce que por favor me diga.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #12 (permalink)  
Antiguo 22/04/2008, 17:00
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Pasar Datos por Post

Hola Lucasan...

MIrá yo uso así en mis sistemas y nunca tu ve problemas, tal cual lo dices tu:

<form action="index.php?mod=procesa" method="post">

Ahi envías los datos del form por post. Ta? eso si!!

PERO... al mismo tiempo si haces la llamada a $_GET['mod'] cuentas con ella.

Lo ves? porque al formulario lo estas enviando con datos de manera POST pero a una URL que tiene datos GET.

Entronces... la clave está en que tu sistema genere la url que va en el action del formulario y ponga all´ñi todos los datos que necesites por get ademas de los datos del form que van por post.

Tamos, a mi me funciona en mis sistemas sin problema. Era eso??
  #13 (permalink)  
Antiguo 22/04/2008, 17:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Pasar Datos por Post

really usermax???

osea GET+POST en un solo FORM.... eso si lo ignoraba, gracias!!!
  #14 (permalink)  
Antiguo 22/04/2008, 17:27
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Pasar Datos por Post

claro... tengo sistema de gestion que funcionan de esta manera:

index.php?mod=test&id=34&sector=76 (un ejemplo)

En el action del form pones esa url.
Al form lo envías por post.

Todos los datos del form los tomas como $_POST pero también tienes los datos por GET que figuraban en el action del form, porque al fin es la página de edestino.

Entonces, primero evaluo todos los datos del form... luego tomo todos los GET los reproduzco y hago un header("location: ...") y vuelve a la página donde estaba si hay errores...

saludos amigo
  #15 (permalink)  
Antiguo 22/04/2008, 17:41
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Re: Pasar Datos por Post

A probar se dijo, ya les contaré como me fué.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #16 (permalink)  
Antiguo 22/04/2008, 22:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Pasar Datos por Post

Solo para confirmar, en servidores Apache, no he tenido ningún problema en pasar formas con GET + POST, pero en servidores con IIS, ignora el GET si el form es POST.

Saludos.
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 15:36.