Foros del Web » Programando para Internet » PHP »

Recoger todos los elementos pasados por GET

Estas en el tema de Recoger todos los elementos pasados por GET en el foro de PHP en Foros del Web. Hola chicos. Primeramente daros la enhorabuena por este estupendo foro pues me ha resuelto el 80% de las dudas que tenía sobre php. Vereis el ...
  #1 (permalink)  
Antiguo 20/11/2008, 13:50
 
Fecha de Ingreso: noviembre-2008
Mensajes: 9
Antigüedad: 15 años, 5 meses
Puntos: 1
Exclamación Recoger todos los elementos pasados por GET

Hola chicos.
Primeramente daros la enhorabuena por este estupendo foro pues me ha resuelto el 80% de las dudas que tenía sobre php.

Vereis el caso es que tengo un panel de configuración el cual (mediante un formulario ) envía todos los elementos marcados (checkbox) a otra página la cual tiene que mirar los elementos que hay marcados y realizar las acciones pertinentes con ellos.
El problema aquí es que la página donde envío los datos no sabe de primera mano cuantos datos le voy a enviar. Actualmente tengo hecho esto para todos los valores:

$var=htmlentities($_GET["variable"]);

pero claro, son unos 50 datos que hay que recoger y eso no compensa. Así que os preguntaba la manera mas eficiente de hacerlo o si hay una función en php para "recoger" todos los parámetros pasados por get en la url.

También se me ha ocurrido meter todas las variables en un array y con un puntero ir comprobando si está vacío o no, y si no está vacío meterlo en otro array de forma que en ese otro array tenga los valores "reales".

Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 20/11/2008, 14:04
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Recoger todos los elementos pasados por GET

La hay si, pero lo ideal es hacerlo a mano o controlarlo.

http://ar2.php.net/extract


O mismo hacer un for/foreach sobre $_GET que es un array, esto seguro sea mejor ya que en cada iteración podés validar los valores de cada variable.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 20/11/2008, 14:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 9
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Recoger todos los elementos pasados por GET

OK, gracias por tu respuesta.
Al final he decidido hacerlo como dije antes puesto que lo veo mas "limpio" y la función extract no acabo de enterderla muy bien.

(ejecuta: es una función mia)

$marcados=array();
while($view_var=ejecuta($tview_consulta))
{
$get_it=$view_var[0];
$var=htmlentities($_GET["$get_it"]);

if ($var!="")
{
array_push($marcados,$view_var[0]);
}
echo "marcado: $var<br/>";
}
print_r($marcados);


el problema con el que me encuentro ahora es que tengo que componer una consulta SQL con los datos contenidos en el array (marcados) y en una sola línea .... (alguna idea?)

No se si el trozo de código de arriba es correcto pero amí me funciona perfectamente y hace lo que tu comentabas que es "controlar la entrada de datos".

Un saludo y gracias de nuevo
  #4 (permalink)  
Antiguo 20/11/2008, 15:47
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: Recoger todos los elementos pasados por GET

Mmm pues si es como mas o menos te entendi, tiene que ser asi:
Código php:
Ver original
  1. $query = "SELECT " . implode(",", $marcados) . " FROM tabla";
  2. echo $query;

Saludos.
  #5 (permalink)  
Antiguo 20/11/2008, 15:54
 
Fecha de Ingreso: noviembre-2008
Mensajes: 9
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Recoger todos los elementos pasados por GET

Cita:
Iniciado por GatorV Ver Mensaje
Mmm pues si es como mas o menos te entendi, tiene que ser asi:
Código php:
Ver original
  1. $query = "SELECT " . implode(",", $marcados) . " FROM tabla";
  2. echo $query;

Saludos.
no tienes ni idea de los quebraderos de cabeza que me ha dado el problema que me acabas de solucionar ... MUCHISIMAS GRACIAS!! era justo lo que necesitaba.

Mas karma para ti ;)

Un saludo y gracias de nuevo
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 02:07.