Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Como saber el nombre de las Variables enviadas por un Formulario

Estas en el tema de Como saber el nombre de las Variables enviadas por un Formulario en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola, estaba desarrollando una aplicacion y me veo obligado por diferentes motivos a hacer lo siguiente.. Supongamos que tenemos un formulario con x cantidad de ...
  #1 (permalink)  
Antiguo 14/08/2008, 12:08
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación Como saber el nombre de las Variables enviadas por un Formulario

hola, estaba desarrollando una aplicacion y me veo obligado por diferentes motivos a hacer lo siguiente..

Supongamos que tenemos un formulario con x cantidad de campos en html, este formulario es enviado a un archivo que procesa los datos y los carga en una BD..

Eso es facil cuando uno conoce el nombre de los campos del formulario, pero como hariamos en caso de no conocerlos, es decir, quiero que el formulario sea totalmente independiente de la recepcion en si....

lo que quiero decir es que... en vez de utilizar

$variable=$_POST['campo_del_formulario'];

Quiro utilizar algo para saber cuales son las variables que entran...y de esta manera poder hacer los demas comportamientos....

Slaudos
  #2 (permalink)  
Antiguo 14/08/2008, 12:14
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
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Hola cmarrero,

Porque no ciclas la variable POST?
Código PHP:
foreach( $_POST as $name => $value ) {
        echo 
"Campo: $name, valor: $value<br />";

Saludos.
  #3 (permalink)  
Antiguo 14/08/2008, 12:22
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación

Claro, habia pensado en eso, justamente cuando me respondiste, el tema es que necesito cargar lo que entra del formulario a una bd. Pero quiero que los campos del formulario sean totalmente independientes tanto del proceso como de la base de datos...

Y creo que es casi imposible... pero estoy viendo como hacerlo, no se me ocurre mucho...

Saludos

A ver... la idea es independenzar la interfaz del proceso... estoy tratando de hacerlo en POO, pero voy de apoco por que me cuesta laburar en php con objetos... entonces, lo que queria hacer sin importar los valores que tengo en el formulario, poder hacer el proceso del envio del mismo formulario sin importar sus campos... y si todo es correcto cargarlos en la BD...(mysql)..

Eso es loq ue estoy tratando de armar...

Última edición por GatorV; 14/08/2008 a las 12:46
  #4 (permalink)  
Antiguo 14/08/2008, 12:46
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
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Mmm no entiendo, si tu ciclas así puedes generar una consulta SQL y enviarla a la base de datos, aunque a fuerzas necesitas cierta información, como minimo la tabla a donde vas a insertar.

Saludos.
  #5 (permalink)  
Antiguo 14/08/2008, 12:53
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Me explico un poco mejor...

Aqui en la empresa somos 3 empleados...

Uno diseña,
Otro Programa
Otro hace la BD...

Bien el diseñador, hace todo la interfaz, hace los formularios, las imagenes, todo lo que tiene que ver con la usabilidad.. el manejo de la aplicacion...

El arquitecto de la BD arma todas las tablas y la obviamente la base de datos.

Yo el programador, recivo todos los datos que me pasa el Arquitecto de la BD para poder hacer las consultas. Con ese tema no ahi problema...

Ahora, el problema es que los diseñadores estan todo el tiempo editando la interfaz y siempre se generan problemas con la programacion ya que suelen cambiar los nombres de los campos de los formularios, o simplemente mueven el orden mismo de los campos...

Entonces yo esta pensando si es posible, crear de alguna manera, una estructura que reciva los datos del formulario sin importar los nombres de los campos ni el orden en el que se encuentran y poder hacer la carga que corresponde en la BD... la conexion con la bd no es el tema, si no la interfaz con el proceso, con la (negociacion).....

Existe alguna forma, o simplemente estoy queriendo una UTOPIA.. je...

Bueno gracias por la ayuda...
  #6 (permalink)  
Antiguo 14/08/2008, 12:55
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Que te parece si a los campos del form les pusieras en name el nombre del campo de la tabla de BD en donde será insertado asi podrias hacer algo como esto:

Código PHP:
///$myQuery debe de tener el comienzo del Query
foreach($_POST as $key => $val){
     
////Escapar los caracteres de $val
     
$myQuery.=$key."=".$val;

Algo por el estilo.
  #7 (permalink)  
Antiguo 14/08/2008, 12:57
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

En eso pense al principio...

Pero el problema que note, es que el diseñador, me cambia los nombres de los campos (es dificil hacer entender el tema). y el orden tambien, por ello, no puedo crear la consulta SQL de esa manera... creo que me estoy enredando mucho... y es mas, creo que lo que estoy queriendo hacer, no se puede...

Pero bueno, gracias por pensarlo conmigo...

Saludos
  #8 (permalink)  
Antiguo 14/08/2008, 13:11
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

No creo que eso de que cada uno trabaje por separado funcione mucho, tal vez lo mejor sería que estén en constante comunicación y que expliques al diseñador la situación, y a qué solución podrían llegar entre ambos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 14/08/2008, 13:16
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
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Exacto porque si te cambia los nombres de los campos esta rompiendo con la armonia del sistema, el debe de saber que los nombres son como son.

Yo trabajo en un ambiente con programadores y diseñadores de otros paises inclusive, y lo ULTIMO que se toca son nombres de campos, si se va a cambiar, hay todo un proceso que incluye mails y mas cosas.

Creo más bien lo que debes de hacer es tener una junta y explicarles la situacion a todos y el porque deben de trabajar sobre la misma base.

Saludos.
  #10 (permalink)  
Antiguo 14/08/2008, 13:21
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

La verdad que tienen razon, es cuestion de armar un estandar para que el diseñador tenga en cuenta estos temas...

Muchas gracias por su aporte, la verdad me sirvio un moton...

Existe un estandar para manejar estas cosas???? alguno que sea facil de implementar no hablo de nomenclaturas y demas, si no un estandar para la comunicacion entre los empleados de una Software Factory...

Si logro que mis jefes quieran implementarla, me ahorra muchas horas de trabajo en modifcar codigo ya escrito...

Muchas Gracias a todos
  #11 (permalink)  
Antiguo 14/08/2008, 13:26
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
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Hay muchos estandares, como CMMI, y otros, son varias cosas que deben de manejar para por ejemplo llegar a una certificación ISO (cosa que es muy difícil).

Lo mejor es si no tienen el tiempo para capacitarse en algo así definan un estándar simple, y manejarse por el.

Saludos.
  #12 (permalink)  
Antiguo 14/08/2008, 13:33
Avatar de Lord Kazuky  
Fecha de Ingreso: junio-2006
Ubicación: 7F.00.00.01
Mensajes: 123
Antigüedad: 17 años, 10 meses
Puntos: 5
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Lo unico que se me ocurre para solucionar eso es almacenar en una lista el nombre de cada campo del formulario con su correspondiente campo en la BD o variable o atributo.

$lista = array("txtnombre" => "nombre", "txtapellido" => "apellido", .... )

Y que cada vez que se actualice el nombre del campo, esto se actualice en el arreglo.
O se puede hacer esto en un archivo o Base de datos.

Aunque bueno la verdad este tipo de manejo para formularios grandes puede ser algo complicado. Bueno solo es una idea.

De todas formas lo mas aconsejable es tener un buen Diseño del sistema en general, un plan de trabajo, una estrategia de organizacion algunos lineamientos. Sobre los cuales cada grupo se guie y pueda trabajar sin afectar a los demas.
__________________
Saludos.
"Cualquier tonto puede escribir código que un computador entiende. Los buenos programadores escriben código que los humanos pueden entender. ;)"
  #13 (permalink)  
Antiguo 14/08/2008, 14:41
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Sonrisa Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Bien gracias, voy a tener en cuenta sus respuestas....

Ma ha servido de mucho..

Saludos
  #14 (permalink)  
Antiguo 14/08/2008, 15:54
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

bueno, para no duplicar el tema, expongo una posible solucion para lo que plantee. Gracias a la ayuda de ustedes, pude armar algo, no exactamente lo que queria pero por lo menos me he aproximado bastante...

Lo que me gustaria es si me ayudan a depurar el codigo siguiente:

Obviamente existe un formulario que envia a esta pagina los datos por $_POST...

claseCargaCliente.php

Código PHP:
class clientes{

    var 
$sqlCargaCliente;
    
    
//Cargar Cliente
    
function cargarCliente($tabla){
    
    
$this->sqlCargaCliente="INSERT INTO ".$tabla."(";
    
    
$total=count($_POST);
    
$contar=$total-1;
    
        foreach( 
$_POST as $name => $value ) {
        
        
$contar--;
            
            if(
$name!="bot"){
            
$this->sqlCargaCliente.=$name;
            
                if(
$contar!=0){
                
$this->sqlCargaCliente.=",";
                }
            
            }
        }
        
    
$this->sqlCargaCliente.=") VALUES ( ";
    
    
$contar=$total-1;
    
        foreach( 
$_POST as $name => $value ) {
            
$contar--;
            if(
$name!="bot"){
                
$this->sqlCargaCliente.="'".$value."'";
                    if(
$contar!=0){
                    
$this->sqlCargaCliente.=",";
                    }
            }
        }
        
    
$this->sqlCargaCliente.=")";
    if(
mysql_query($this->sqlCargaCliente)){
    return 
1;
    }else{
    return 
2;
    }
    
    }
    

}
include(
"conexion.php");
conectar();
$objCliente = new clientes;
echo 
$objCliente->cargarCliente("clientes"); 
Gracias y Saludos
  #15 (permalink)  
Antiguo 14/08/2008, 16:00
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
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Tema trasladado a PHP Orientado a Objetos.

Fuera del diseño hay muchas cosas a mejorar, como el separar la conexión de tu BDD, y otras cosas por el estilo.

Saludos.
  #16 (permalink)  
Antiguo 14/08/2008, 18:46
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Pufff... suerte que al final se ve la clase... pensé que era una charla de bar

cmarrero, están usando PHP4 o PHP5?

Ya te sugiero que uses los estándares oficiales de codificación para PHP
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #17 (permalink)  
Antiguo 14/08/2008, 19:06
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Estoy usando php5, lamentablemente no me llevo bien con el ingles, y no entiendo nada del link que me pasaste de los estandares de Zend...

No lo tendras en Español???

Saludos
  #18 (permalink)  
Antiguo 14/08/2008, 19:21
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Como saber el nombre de las Variables enviadas por un Formulario

Bien, si estás usando php5, debes codificar las clases con sintaxis de php5, y eso solo viendo el manual oficial (en tu propio idioma).

La guía anterior, es puramente técnica, por lo que si intentas leerla, verás que se comprende completamente.

PD: los ejemplos en código son muy claros.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 10:00.