Leer variables de la URL situadas detrás de una #

Querría saber si se pueden leer las variables situadas en una url detrás de #. ¿Me encuentro con url tipo archivo.php? #id=7 y querría saber si de alguna manera el php o algún script me lo puede permitir.

3 Respuestas

Respuesta
1
No creo que te puedo ayudar mucho ya que, por lo que yo sepa, no se puede leer contenido en un url después del carácter #.
En php (y otras lenjages de programación) este símbolo esta reservado para comentarios, lo cuales no se lean.
Lo cierto es que lo "normal" en urls es que seperan los variables con el ampersand (&).
Perdona por no poder ser de más ayuda.
Respuesta
1
Bueno en realidad las variables después de un "#" no se pueden leer con php. Sin embargo si estás usando un servidor apache como servidor de aplicaciones para php, es posible usar reglas con el modulo mod_rewrite, para cambiar la forma en que el servidor web interpreta los requerimientos tipo get.
Mira los enlaces
http://www.webmasterworld.com/apache/3216645.htm
http://www.webmasterworld.com/apache/3591014.htm
Respuesta
1
Por supuesto. Puedes acceder a estas variables con la matriz $_GET. En tu caso sería:
<?php
echo $_GET["id"];
?>
Por si no se lee bien, la matriz se escribe con un símbolo $ un símbolo _ la palabra GET y el nombre de la variable id encerrada entre comillas i corchetes.
El problema es que detrás del # no lo lee
En este caso puedes separar primero la parte que te interesa y separar sus componentes:
<?php
$frag = parse_url($_SERVER["QUERY_STRING"], PHP_URL_FRAGMENT);
parse_str($frag[0]);
// Las variables de la URL ya existirán con sus valores
echo $id;
?>
Me da error en PHP_URL_FRAGMENT, si lo quito no funciona
Supongo que no habrás puesto comillas alrededor de PHP_URL_FRAGMENT pues no es una cadena sino una constante: debe escribirse tal y como te he indicado.
En todo caso puedes usar esta expresión alternativa, suponiendo siempre que existe el carácter # al principio del primer parámetro como has indicado:
<?php
$frag = substr(strstr($_SERVER["QUERY_STRING"], "#"), 1);
parse_str($frag);
// Las variables de la URL ya existirán con sus valores
echo $id;
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas