Foros del Web » Programando para Internet » PHP »

Recoger datos de varios formularios PHP

Estas en el tema de Recoger datos de varios formularios PHP en el foro de PHP en Foros del Web. Se que sera una tontada lo que pregunto, pero no doy en el clavo. ¿Si tienes dos formularios en un archivo php como coges los ...
  #1 (permalink)  
Antiguo 04/01/2007, 09:22
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Recoger datos de varios formularios PHP

Se que sera una tontada lo que pregunto, pero no doy en el clavo. ¿Si tienes dos formularios en un archivo php como coges los post de uno u otro?

Supongo que por el nombre del formulario. Pero quiero evitar en este caso utilizar javascript.

Un saludo.
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #2 (permalink)  
Antiguo 04/01/2007, 09:35
Avatar de blakeyed  
Fecha de Ingreso: marzo-2004
Ubicación: Ahora mismo, Málaga
Mensajes: 78
Antigüedad: 20 años
Puntos: 0
Re: Recoger datos de varios formularios PHP

Por el name="" de cada input. Tu tendrás todas las variables en el $_POST[].

Si quieres en el formulario pones un <input type=hidden name=que_formulario_se_ha_mandado value=1>

y cuando veas que la variable $_POST['que_formulario_se_ha_mandado']==1 ya sabes qué formulario tienes que procesar

Saludos
__________________
Saludos

Gaspar Fernández
Poesía Binaria
  #3 (permalink)  
Antiguo 04/01/2007, 09:36
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Recoger datos de varios formularios PHP

Supongo que cada formulario tiene su botón tipo submit. Dale un nombre a cada uno. Luego, en el script que recibes los post, comprueba $_POST['cadaboton']

Un saludo.

Perdón blakeyed. Creo que nos cruzamos. Creo que cualquiera de las respuestas puede valer. Un saludo

Última edición por holahola; 04/01/2007 a las 09:38 Razón: respuesta innecesaria por estar ya solucionada
  #4 (permalink)  
Antiguo 04/01/2007, 09:42
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Recoger datos de varios formularios PHP

Como dices, los puedes identificar con el nombre del formulario, el cual personalmente defino en la etiqueta <input type="submit" name="miFormulario" />. He aquí un ejemplo que hice para ti:

Código HTML:
<!--Primer formulario-->
<form method="post">
<label>Nombre</label>
 <input name="nombre" />
 <input type="submit" name="formulario1" />
</form>

<!--Segundo formulario-->
<form method="post">
<label>Apellido</label>
 <input name="apellido" />
 <input type="submit" name="formulario2" />
</form> 
Código PHP:
<?php
//Obteniendo los datos de "formulario1"
if(isset($_POST['formulario1'])) {
 echo 
"Tu nombre es {$_POST['nombre']}"; }

//Obteniendo los datos de "formulario"
if(isset($_POST['formulario2'])) {
 echo 
"Tu apellido es {$_POST['apellido']}"; }
?>
Espero te halla sido de ayuda
  #5 (permalink)  
Antiguo 04/01/2007, 09:51
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Recoger datos de varios formularios PHP

Ajá, ya veo mediante los name de los input's. Pero me gustaria saber si se podria hacer para los name de los formularios.

En el ejemplo que me pusiste, solo seria poniendole name a los formularios:

Código HTML:
<!--Primer formulario--> 
<form method="post" name="form2"> <label>Nombre</label>  
<input name="nombre" /> <input type="submit" name="formulario1" /> 
</form> 
<!--Segundo formulario--> 
<form method="post" name="form1"> <label>Apellido</label>  
<input name="apellido" /> <input type="submit" name="formulario2" /> </form> 
Se que es mas seguro utilizar isset() para comprobar si la variable esta establecida, y que $_POST tambien se deberia usar (pero creo que no es necesario a partir de cierta version de PHP) pero a menudo lo hago asi, porque es mas corto en la sintaxis y creo que hace lo mismo:

Código PHP:
<?php
//Obteniendo los datos de "formulario1"
if($formulario1){echo "Tu nombre es {$nombre}";}

//Obteniendo los datos de "formulario2"
if($formulario2){echo "Tu apellido es {$apellido}";}
?>
Aun asi me gustaria saber si hay algun problema de seguridad o similares no utilizando isset() o $_POST y por otro lado lo que os preguntaba anteriormente de si funcionaria con el name pero de los formularios.

Un saludo.
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #6 (permalink)  
Antiguo 04/01/2007, 09:52
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Recoger datos de varios formularios PHP

Borren este post, postee 2 veces lo mismo XD
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #7 (permalink)  
Antiguo 04/01/2007, 10:11
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Recoger datos de varios formularios PHP

Lo de utilizar $_POST es por seguridad; pero eso es otro tema.

Tu script recibe el formulario via $_POST. Si quieres ver lo que viaja, inserta este código:

Código PHP:
echo '<pre>';
print_r($_POST);
echo 
'</pre>'
Realmente $_POST es un array. Si lo pruebas, verás que el nombre del formulario no viaja.

Un saludo.
  #8 (permalink)  
Antiguo 04/01/2007, 11:06
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Recoger datos de varios formularios PHP

juas! que buen truco para visualizar todos los datos de un formulario XD. Adios a todos los echo de cada variable XD

Me gustaria que me informaras algo mas sobre los peligros de seguridad de no utilizar $_POST. Un saludo.
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #9 (permalink)  
Antiguo 04/01/2007, 11:24
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Recoger datos de varios formularios PHP

Hasta donde yo he experimentado no he podido obtener variables de formulario sin usar "$_POST[]", "$_GET[]" o "REQUEST[]". Así que para mi utilizar alguna de estas series (o arreglos) no es cuestión de seguridad sino de necesidad. Tengo la version más actual de PHP (quizá para poder utilizar ese método halla que hacer algo en el archivo .ini).

Tampoco he podido hacer referencia a un formulario si utilizas la atributo "name" en la etiqueta "<form>".
  #10 (permalink)  
Antiguo 05/01/2007, 01:58
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Recoger datos de varios formularios PHP

Sobre este tema hay mucho escrito en este foro. Te recomiendo hacer una busqueda con el argumento:
register globals
Para comenzar, da un vistazo a los siguientes enlaces:

http://www.forosdelweb.com/showpost....67&postcount=3

http://www.forosdelweb.com/showpost....89&postcount=4

Un saludo.

Última edición por holahola; 05/01/2007 a las 02:08
  #11 (permalink)  
Antiguo 05/01/2007, 03:03
Avatar de blakeyed  
Fecha de Ingreso: marzo-2004
Ubicación: Ahora mismo, Málaga
Mensajes: 78
Antigüedad: 20 años
Puntos: 0
Re: Recoger datos de varios formularios PHP

Cita:
Iniciado por The Stranger Ver Mensaje
Hasta donde yo he experimentado no he podido obtener variables de formulario sin usar "$_POST[]", "$_GET[]" o "REQUEST[]". Así que para mi utilizar alguna de estas series (o arreglos) no es cuestión de seguridad sino de necesidad.
Imagínate que con el método GET (en la dirección miphp.php?param1=kaka&param2=pedo) te puedan toquetear una información de un formulario que tiene que ser enviado por POST. O mejor aún, imagínate que una variable de tu programa no la inicializas y por GET puede alguien desde fuera tocar su valor. Tu script puede dar resultados inesperados. Por eso es bueno tenerlo desactivado.

Si vienes de C/C++ u otro lenguaje, por ejemplo no tendrás problema, porque estarás acostumbrado a inicializarlo todo; a pesar de eso es un riesgo para la seguridad (Menos mal que en php6 ya no existe register_globals.
__________________
Saludos

Gaspar Fernández
Poesía Binaria
  #12 (permalink)  
Antiguo 05/01/2007, 03:41
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Recoger datos de varios formularios PHP

Efectivamente. Y por eso, si tu servidor alguna vez se pasa a la version 6 de php, SOLO te va ha funcionar utilizando las variables con $_POST, $_GET, etc.

Por lo tanto, acostúmbrate a ello y no tendrás que hacer grandes cambios en un futuro.

Un saludo.
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 12:49.