Ver Mensaje Individual
  #14 (permalink)  
Antiguo 24/09/2010, 13:20
Avatar de bng5
bng5
 
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: Mostrar nombre de valor GET

Cometimos un error: te dimos respuestas concretas a preguntas concretas.

key, print_r, extract, for, foreach, while, do...while, switch, break y continue te van a acompañar siempre, deberías consultar el manual para profundizar en ellos.

El problema es que siendo tan ejecutivos no reparamos, como hizo Triby, en que te estabamos motivando a hacer un posible mal uso de los parámetros GET.

El query GET se almacena en el array asociativo $_GET, clave/valor. No deberías depender del orden de los parámetros porque se ubican por su clave.
A no ser que tengas, por ejemplo, "un CMS donde el administrador define los filtros que el usuario puede usar para obtener un listado", siempre vas a recibir parámetros que el sistema esté preparado por código para recibir y tengas valores por omisión o predeterminados.

Código PHP:
    // Con asignacion ternaria es mas rápido
    
$variable = (isset($_GET['variable'])) ? $_GET['variable'] : ''

Si recibís esta consulta
sitio.com/?a=1&modorro&b=2&kichusfleta
¿cómo sabés cual es el parámetro que tenés que usar? ¿vas a usar el primero que no reconozcas?
Cómo dice Triby: la clave en realidad es un valor.
Si no lo vas a identificar por su clave podés ponerlo en un lugar más adecuado.

Por suerte PHP te da más posibilidades, el query GET no es la única opción.
Esta ruta
sitio.com/?Modorro&foto=15&seccion=Portada
podés convertirla en
sitio.com/?usuario=Modorro&foto=15&seccion=Portada
o mejor aun en
sitio.com/Modorro?foto=15&seccion=Portada

Te recomiendo guardes un archivo phpinfo en un lugar siempre accesible (ej.: /var/www) y podrás hacer pruebas con las rutas.

1_
Al archivo se puede acceder con /phpinfo.php, pero también con /phpinfo.php/Modorro, en este caso en lugar de obtener Modorro de $_GET lo obtenés de $_SERVER['PATH_INFO'].
Si estás usando Apache mejor aun, podés habilitar la negociación de contenidos (MultiViews) que te permite (entre otra cosas) acceder al documento sin especificar la extensión (/phpinfo.php/Modorro quedaría en /phpinfo/Modorro).

2_
También con Apache (trabajo con Apache, desconozco las opciones que dan otros servidores web) podés re-escribir la consulta como hacen la mayoría de los sistemas que usan MVC con un controlador frontal.

Este es un ejemplo de un archivo .htaccess para enrutar las peticiones al controlador frontal.
Código Apache:
Ver original
  1. # habilita el módulo de rescritura
  2. RewriteEngine On
  3.  
  4. # si la petición no corresponde a ningún archivo ni carpeta phpinfo.php se hace cargo
  5. RewriteCond %{REQUEST_FILENAME}    !-d
  6. RewriteCond %{REQUEST_FILENAME}    !-f
  7. RewriteRule ^(.*)$         phpinfo.php  [L]
En este caso en lugar de usar $_SERVER['PATH_INFO'] usarías $_SERVER['REDIRECT_URL']


Espero se entienda, no está profundizado, eso tendrás que hacerlo vos.