Foros del Web » Programando para Internet » PHP »

Consulta - forma eficiente de tratar variables de un formulario

Estas en el tema de Consulta - forma eficiente de tratar variables de un formulario en el foro de PHP en Foros del Web. Buenas, Me pregunta si existe alguna forma más eficiente de tratar las variables de un formulario, las variables las recibes por POST. Actualmente lo hago ...
  #1 (permalink)  
Antiguo 01/10/2009, 15:26
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Consulta - forma eficiente de tratar variables de un formulario

Buenas,

Me pregunta si existe alguna forma más eficiente de tratar las variables de un formulario, las variables las recibes por POST.

Actualmente lo hago así... pero no me parece nada eficiente

Código php:
Ver original
  1. $nombre = $_POST['nombre'];
  2. $nombre = utf8_decode($nombre);
  3. $apellidos = $_POST['apellidos'];
  4. $apellidos = utf8_decode($apellidos);
  5. $fnacimiento = $_POST['fnacimiento'];
  6. $fnacimiento = utf8_decode($fnacimiento);
  7. $dni = $_POST['dni'];
  8. $dni = utf8_decode($dni);
  9. $direccion = $_POST['direccion'];
  10. $direccion = utf8_decode($direccion);
  11. $poblacion = $_POST['poblacion'];
  12. $poblacion = utf8_decode($poblacion);
  13. $cpostal = $_POST['cpostal'];
  14. $cpostal = utf8_decode($cpostal);
  15. $provincia = $_POST['provincia'];
  16. $provincia = utf8_decode($provincia);
  17. $tel_parti = $_POST['tel_parti'];
  18. $tel_parti = utf8_decode($tel_parti);
  19. $tel_profe = $_POST['tel_profe'];
  20. $tel_profe = utf8_decode($tel_profe);
  21. $mvl_parti = $_POST['mvl_parti'];
  22. $mvl_parti = utf8_decode($mvl_parti);
  23. $mvl_profe = $_POST['mvl_profe'];
  24. $mvl_profe = utf8_decode($mvl_profe);
  25. $email_parti = $_POST['email_parti'];
  26. $email_parti = utf8_decode($email_parti);
  27. $email_profe = $_POST['email_profe'];
  28. $email_profe = utf8_decode($email_profe);
  29. $fax = $_POST['fax'];
  30. $fax = utf8_decode($fax);

Gracias de antemano!
  #2 (permalink)  
Antiguo 01/10/2009, 15:34
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Consulta - forma eficiente de tratar variables de un formulario

Y porque en ves de hacer eso, no haces esto?

Código php:
Ver original
  1. <?php
  2.  
  3. $nombre = utf8_decode($_POST['nombre']);
  4.  
  5. ?>
  #3 (permalink)  
Antiguo 01/10/2009, 15:39
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Consulta - forma eficiente de tratar variables de un formulario

O tambein haces un forech para los controles de tu formulario y luelo los recorres y tomas sus valores
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #4 (permalink)  
Antiguo 02/10/2009, 00:01
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Consulta - forma eficiente de tratar variables de un formulario

Cita:
Iniciado por Nisrokh Ver Mensaje
Y porque en ves de hacer eso, no haces esto?

Código php:
Ver original
  1. <?php
  2.  
  3. $nombre = utf8_decode($_POST['nombre']);
  4.  
  5. ?>
Es cierto Nisrokh! no había caido :D. He conseguido ahorra una linea por cada variable

Código php:
Ver original
  1. $nombre = utf8_decode($_POST['nombre']);
  2. $apellidos = utf8_decode($_POST['apellidos']);
  3. $fnacimiento = utf8_decode($_POST['fnacimiento']);
  4. $dni = utf8_decode($_POST['dni']);
  5. $direccion = utf8_decode($_POST['direccion']);
  6. $poblacion = utf8_decode($_POST['poblacion']);
  7. $cpostal = utf8_decode($_POST['cpostal']);
  8. $provincia = utf8_decode($_POST['provincia']);
  9. $tel_parti = utf8_decode($_POST['tel_parti']);
  10. $tel_profe = utf8_decode($_POST['tel_profe']);
  11. $mvl_parti = utf8_decode($_POST['mvl_parti']);
  12. $mvl_profe = utf8_decode($_POST['mvl_profe']);
  13. $email_parti = utf8_decode($_POST['email_parti']);
  14. $email_profe = utf8_decode($_POST['email_profe']);
  15. $fax = utf8_decode($_POST['fax']);

acumulador podrías indicarme cómo haces el bucle con las variables provinientes del formulario?

Muchas gracias
  #5 (permalink)  
Antiguo 02/10/2009, 08:10
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Consulta - forma eficiente de tratar variables de un formulario

Claro que si, mira primero tenes una pagina con un formulario y en esta tenes unos extbox los cuales se llaman todos iguales y con corchetes, para indicar que son un array; asi:
nombre[]

En la pagina que recibe los datos del formulario con php debes poner esto:

un ciclo para tomar los valores en un array o en lo que quieras, por ejemplo aqui imprimo los nombres que escribieron en el formulario.

foreach($_POST['nombre'] as $valorN){
echo "Nombre: ".$valorN."<br />";
}



Espero te sirva, espero me entiendas. De lo contrario no dudes en preguntar, suerte.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #6 (permalink)  
Antiguo 02/10/2009, 08:15
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Consulta - forma eficiente de tratar variables de un formulario

Usa la funcion extract() de php para evitar estar haciendo esto $var = $_POST['var']; ejemplo

extract( $_POST );

y simplemente usas el nombre de la variable q enviaste por el metodo POST

echo $var
  #7 (permalink)  
Antiguo 02/10/2009, 10:29
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: Consulta - forma eficiente de tratar variables de un formulario

La función extract() no es muy recomendada ya que puedes caer en un problema como el de register_globals, aparte de que lo que el hace es aplicar el utf8_decode sobre las variables por lo que la solución más correcta sería la de acumulador.

Saludos.
  #8 (permalink)  
Antiguo 02/10/2009, 11:09
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Consulta - forma eficiente de tratar variables de un formulario

Cita:
Iniciado por acumulador Ver Mensaje
Claro que si, mira primero tenes una pagina con un formulario y en esta tenes unos extbox los cuales se llaman todos iguales y con corchetes, para indicar que son un array; asi:
nombre[]

En la pagina que recibe los datos del formulario con php debes poner esto:

un ciclo para tomar los valores en un array o en lo que quieras, por ejemplo aqui imprimo los nombres que escribieron en el formulario.

foreach($_POST['nombre'] as $valorN){
echo "Nombre: ".$valorN."<br />";
}



Espero te sirva, espero me entiendas. De lo contrario no dudes en preguntar, suerte.
Muchas gracias acumulador no sabía esta forma, la verdad es que es muy útil, ¿crees que se utiliza mucho?

El problema de hacerlo así es que los campos que son "textarea" te pone todo en una línea, no detecta los saltos de linea. ¿Esto se puede solucionar?

Un solución, no se si la única es contando la posición donde está el campo "textarea"

Código php:
Ver original
  1. $cont=1;
  2. foreach($_POST['nombre'] as $valorN){
  3.     if ($cont==5){
  4.         $valorN=nl2br($valorN);
  5.     }
  6.     echo "Nombre: ".$valorN."<br />";
  7.     $cont=$cont+1;
  8. }

¿Conoces otra?

Muchas gracias
  #9 (permalink)  
Antiguo 02/10/2009, 14:38
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: Consulta - forma eficiente de tratar variables de un formulario

Puedes ciclar y obtener el nombre del campo por ejemplo:
Código PHP:
Ver original
  1. foreach ($_POST as $field => $value) {
  2.      echo $field .' => '. $value;
  3. }

Saludos.
  #10 (permalink)  
Antiguo 02/10/2009, 23:22
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Consulta - forma eficiente de tratar variables de un formulario

Cita:
Iniciado por GatorV Ver Mensaje
Puedes ciclar y obtener el nombre del campo por ejemplo:
Código PHP:
Ver original
  1. foreach ($_POST as $field => $value) {
  2.      echo $field .' => '. $value;
  3. }

Saludos.
Me alegra que les sirva la informacion que publique,
mucha suerte y feliz dia.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #11 (permalink)  
Antiguo 03/10/2009, 02:25
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Consulta - forma eficiente de tratar variables de un formulario

Cita:
Iniciado por GatorV Ver Mensaje
Puedes ciclar y obtener el nombre del campo por ejemplo:
Código PHP:
Ver original
  1. foreach ($_POST as $field => $value) {
  2.      echo $field .' => '. $value;
  3. }

Saludos.
Con esta versión de GatorV no hace falta declarar los campos del formulario como una array[] no? porque si los declaro como un array no me funciona.

Así que casí mejor asi, puedo saber el nombre del campo ;)
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 18:20.