entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Problema al obtener la url actual usando php

Buenas tengo el siguiente error a la hora de obtener la url actual usando php la url es la siguiente :

    http://localhost/token.php?#access_token=EAALhZB1GcFMUBAIk7fEy1221212HjQUT6wb0NypHpKYRKRxcQVcKxmn56hn0RdZB6LO6qyppN1Jc7VBjcJITzOoKBT65dKZBgiyy55HNqdKuTAJSVnfgCwfdBBwe1rl0cUeksZAXcuG8cLJLwMYHQ8557bvVjhD2MTse3czS3o1c0jWmIqdWMYLJ63TYIIpFKK4DVm8a3LtH7sq2Ngz5QZDZD&expires_in=709385

Como pueden observar la url tiene esta parte

?#access_token 

el signo

#

impide obtener la url completa usando este método.

$urls = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 

echo $urls;

Lo que intento es obtener la url completa , solo consigo esta parte

http://localhost/token.php?

3 Respuestas

2votos

Leonardo-Tadei Puntos227320

Hola @Botxtrem-Solutions,

podés obtener la cadena completa de la petición, sin cargar en el vector superglobales $_GET, con una de estas dos variables de entorno PHP:

$q1 = $_SERVER["QUERY_STRING"];
$q2 = $_SERVER['REQUEST_URI'];

Según el tipo de servidor web existirá una, otra o las dos.

Sin embargo, es posible que tengas otro problema: las url que empiezan con # apuntan a un "anchor", que es un marcador interno de una página HTML.

Si el anchor apunta a la misma página que estás viendo, en navegador intentará moverse hasta él, pero nada será transmitido al servidor, por lo que en PHP no vas a ver nada de esto.

Si en cambio el anchor apunta a otra página, el navegador hará la petición al otro URL y podrás obtener estos datos en el servidor.

A priori, te diría que si luego del nombre del script el URL empieza con un #, entonces tenés un problema en el armado de URL de tu sitio, y deberás solucionarlo generando URLs válidas para el funcionamiento de la aplicación.

Saludos cordiales

1voto

Botxtrem-Solutions comentado

Gracias por el dato realmente la url no la genera mi pagina es mas una respuesta de otra pagina que retorna esa url de la que necesito capturar el token de respuesta .

en php uso esto:

$urls = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 

echo $urls;

y funciona bien si el signo

#

no se encuentra en la url pero eso no depende de mi pagina

usando javascript :

var jash = window.location.hash;

logro obtener el token pero no logro almacenarlo en una variable php

1voto

Leonardo-Tadei comentado

Hola @Botxtrem-Solutions,

lo dicho: un URL que empiece con # no se envía al servidor, sino que va a un anchor local. Si no se envía una petición al servidor, no llega nada que PHP pueda leer o procesar.

No sé si es por tu forma de expresarlo, pero tal vez tengas un concepto mal: no existe manera de tener algo en JavaScript "y almacenarlo en una variable PHP". Sencillamente, JavaScript y PHP se ejecutan en máquinas diferentes (o en entornos de ejecución diferentes si es la misma máquina)...

Lo que podés hacer es enviar el string al servidor para poderlo procesar desde PHP. Lo podés enviar vía HTMLHTTPRequest luego de leerlo en Javascript.

Saludos cordiales

2votos

morgooth Puntos2340

Intenta con

<?php
echo "<pre>";
print_r ($_SERVER);
echo "</pre>";

?>

1voto

Botxtrem-Solutions comentado

Gracias por el dato pero igual muestra toda la información menos la parte que esta luego del signo #

Usando javascript

<script>
function getBaseURL() {
// obtenemos el hash
var jash = window.location.hash;
// lo imprimimos
return jash;
}
</script>

Obtengo el resultado pero aun no logro pasarlo a una variable php que en este caso es $urls

2votos

versce123mx Puntos1990

Y si utilizas location.href de js y luego con php haces lo que quieras, aparte creo que ese # se codificara y tendras que decodificarlo, intentalo y si no me pongo hacerlo para indicarte como hacerlo.

0voto

Botxtrem-Solutions comentado

Gracias estoy tratando de lograrlo de esta manera

<script>
function getBaseURL() {
// obtenemos el hash
var jash = window.location.hash;
// lo imprimimos
return jash;
}
</script>

<?php
 $url1 = "<script>getBaseURL();</script>";
 $url = $url1
 echo $url ;
?>

pero no obtengo ningún resultado al pasar la variable de javascript a php

espero alguna ayuda gracias

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta