Foros del Web » Programando para Internet » PHP »

envio variables por url

Estas en el tema de envio variables por url en el foro de PHP en Foros del Web. Haber si consigo poneros en situacion para que entendais mi duda. Mi web tiene index.php que ejerce de controlador general, a él le llegan TODAS ...
  #1 (permalink)  
Antiguo 07/01/2008, 03:35
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 6 meses
Puntos: 2
envio variables por url

Haber si consigo poneros en situacion para que entendais mi duda. Mi web tiene index.php que ejerce de controlador general, a él le llegan TODAS LAS PETICIONES; luego el las distribuye a otros controladores segun la peticion que sea, si por ejemplo la peticion es de noticias, pos llamara al controlador noticias.
Vale, al index.php le llegan variables $1 $2 $3 .... la priemra variable indica a que controlador va a llamar ($1=noticias) y y la segunda a que metodo deberá llamar ($2= verNoticias). Luego las demas variables llevaran informacion que necesite ese metodo en particular; por tanto puede ser que solo haya 2 parametros $1 $2 o puede que haya mas, la cosa es que el index.php......todos los parametros que sean mayores de $2 ($3,$4 ...los que le manden ) tendra k enviarselos al metodo ese. Pero claro como puedo hacer eso? pk lo mismo me pueden mandar 4 variables, 2 variables.

Ejemplo......... se quieren ver las noticias.
al index le llega $1=noticias, $2=verNoticia, $3=15

el index llamara a noticias->verNoticia(15)

osea todos los parametros que excedan a $2 se los tiene que mandar al metodo que toke,
COMO HAGO ESO?

axias...y perdon por la chapa
  #2 (permalink)  
Antiguo 07/01/2008, 03:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: envio variables por url

¿Cual es el problema? El mismo codigo que llama al metodo correspondiente sabe que parametro debe pasarle, y sabe de donde cogerlo. Y en ultima instancia, siendo todos parametros del query string estan en el array superglobal $_GET.
  #3 (permalink)  
Antiguo 07/01/2008, 15:02
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: envio variables por url

el problema es que.......hay veces que el controlador global recibira 4 parametros, otra veces 3 parametros, otras veces 6 parametros....
tonces siempre los dos primeros parametros le indican a k clase y a k metodo debe llamar.......y a dicho metodo le debe enviar todos los parametros que el ha recibido pero del 3 en adelante........lo que no se es como acer eso.........como hacer para enviar al metodo que toke.......todos los parametros del 3 en adelante.......

pk en el caso de consultar noticia....ps esta claro que el controlador global va a recibir tres parametros.... 1- nombre de la clase (noticias) 2- nombre de metodo (consultarNoticia) 3- numeroDeNoticiaAConsultar ..........y llamara al metodo de esa clase enviandole el parametro 3.

pero habra casos que igual el controlador global reciba 5 parametros....tonces tendra k llamar a la clase y el metodo que le toke....con el parametrto 3,4,5 y (osea con todos los parametros que el mismo ha recibido y que sean del 3 en adelante)

eso es lo que no se hacer....

...un saludo...
  #4 (permalink)  
Antiguo 07/01/2008, 15:21
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: envio variables por url

Podrias usar array_values() y foreach():

Código PHP:
$variables array_values($_GET);
 
$i 1;
 
$clase "";
$metodo "";
$parametros "";
 
foreach(
$variables as $variable) {
    switch(
$i);
        case 
1$clase $variable; break;
        case 
2$metodo $variable; break;
        default: 
$propiedades[] = "\"".addslashes($variable)."\""; break;
    endswitch;
    
$i++;
}
eval(
"\$$clase->$metodo(".implode(",",$propiedades).");"); 
Un saludo,
  #5 (permalink)  
Antiguo 07/01/2008, 16:29
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: envio variables por url

joe muchas gracias, ya lo voy a probar pero tiene pinta de que me va a funcionar a la perfeccion.

muxas gracias
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 13:41.