PHP - Guardar el codigo html de una url en una variable

 
Vista:

Guardar el codigo html de una url en una variable

Publicado por Takashi (1 intervención) el 17/11/2017 09:39:53
Estimados, llevo varios días intentando crear una página "generar_informe.php" que guarde en una variable el código html generado por otra url (es en un moodle3), por ejemplo "http://www.midominio.com/datos_informe.php?id=15"

Lo he probado usando:

$codigo .= file_get_contents("http://www.midominio.com/datos_informe.php?userid=15");

Y funciona bien en las páginas que no hay que hacer login (ie. www.google.com), pero me falla al hacer la llamada desde una plataforma moodle3, aunque lance la página (generar_informe.php) logeado como administrador, y me parece raro porque si pego esa url en el navegador si se cargar sin problemas, pero al lanzar la página "generar_informe.php" el html que me recoge de la página "datos_informe.php?userid=15? es la pantalla de login del usuario, como si no tuviera una sesión abierta.

Creo que tiene que ver con la sesion, pero no sabría como aplicarlo en este caso, y al estar logeado previamente como adminsitrador no entiendo porque me pide login para abrir una url que de por si si que puedo abrir como admin, alguien tiene alguna idea?

No se si se podría intentar algo con httprequest, pero no se usar bien esa función.

Un saludo y muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Guardar el codigo html de una url en una variable

Publicado por Miguel (218 intervenciones) el 17/11/2017 13:14:14
No entiendo... Estás tratando de obtener los datos que procesa (un informe al parecer) tu mismo servidor?...

Lo que hace la función file_get_contents es solicitar el contenido de la url desde el servidor, por lo tanto aquí no se pasan las variables de sesión aunque la url pertenezca al mismo servidor.

Si el contenido de la url que quieres obtener es del mismo servidor, tendrías que crear una función reutilizando el código de esa url (datos_informe.php) que reciba como parámetro ese 'userid' que aparece y que te devuelva el código HTML en lugar de impirmirlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar