Foros del Web » Programando para Internet » PHP »

Como podría comprobar la url desde la que se cargar el php???

Estas en el tema de Como podría comprobar la url desde la que se cargar el php??? en el foro de PHP en Foros del Web. Hola, la cuestión es que tengo un lanzador de swf que lo que hace es cargar los swf embebidos en un archivo algo así. <param ...
  #1 (permalink)  
Antiguo 18/03/2008, 06:46
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Como podría comprobar la url desde la que se cargar el php???

Hola, la cuestión es que tengo un lanzador de swf que lo que hace es cargar los swf embebidos en un archivo algo así.

<param name="movie" value="lanzadorswf.php">

a todo esto los scripts están autenticados con sesiones, para que solo lo puedan ver los usuarios registrados, lo que me gustaría añadir al archivo lanzadorswf.php es una comprobación de que se le está llamando desde el archivo.html, esto actualmente lo hago con la variable predefinida $_SERVER['HTTP_REFERER'], como mucho de vosotros sabreis esta variable no es "fiable" al 100% pues muchos navegadores no la definen y se puede modificar.

¿Alguien sabe alguna forma o función mejor que $_SERVER['HTTP_REFERER'] para comprobar desde donde se le está llamando al archivo lanzadorswf.php?

Se me ocurre con $_SERVER['PHP_SELF'] pero como podría propagarla para después hacer la comprobación??? en fin cualquier "idea" me vendría muy bien.

Muchas gracias.

Saludos.
  #2 (permalink)  
Antiguo 18/03/2008, 08:17
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Re: Como podría comprobar la url desde la que se cargar el php???

Por favor necesito ayuda...

Gracias.
  #3 (permalink)  
Antiguo 18/03/2008, 09:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Como podría comprobar la url desde la que se cargar el php???

Hola Zertiko,

No hay una forma "bien" de hacer lo que propones, ya que como bien expones $_SERVER['HTTP_REFERER'] muchas veces no es propagada por el navegador. Tu única forma es usando una variable de sesión y guardar la pagina en la que esta el usuario antes de entrar, aunque puede haber mucha colisión, y no creo que obtengas el resultado que esperas.

Para usar una variable de sesión puedes hacer lo siguiente:
Código PHP:
session_start();
$_SESSION['lastPage'] = $_SERVER['PHP_SELF']; 
Luego en la siguiente pagina:
Código PHP:
session_start();
$lastPage $_SESSION['lastPage']; 
Saludos.
  #4 (permalink)  
Antiguo 18/03/2008, 14:02
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Re: Como podría comprobar la url desde la que se cargar el php???

Cita:
Iniciado por GatorV Ver Mensaje
Hola Zertiko,

No hay una forma "bien" de hacer lo que propones, ya que como bien expones $_SERVER['HTTP_REFERER'] muchas veces no es propagada por el navegador. Tu única forma es usando una variable de sesión y guardar la pagina en la que esta el usuario antes de entrar, aunque puede haber mucha colisión, y no creo que obtengas el resultado que esperas.

Para usar una variable de sesión puedes hacer lo siguiente:
Código PHP:
session_start();
$_SESSION['lastPage'] = $_SERVER['PHP_SELF']; 
Luego en la siguiente pagina:
Código PHP:
session_start();
$lastPage $_SESSION['lastPage']; 
Saludos.
Hola GatorV, muchas gracias por la ayuda he probado este sistema parece que va bien pero es muy trabajoso ya que hay que hacer 1 archivo de comprobación por lanzador..., te explico a ver que te parece mejor este o el de HTTP_REFERER aunque no sea fiable al 100%

Una vez que el usuario se ha autenticado...
creo al sesión con la url actual en la que esta

Código PHP:
$url=$_SERVER['PHP_SELF'];
session_start();
$_SESSION["urlguia"]="$url"

En el archivo que lanza el swf, compruebo que la url de la que proviene sea la correcta cargando la sesión.

Código PHP:
session_start();
if(
$_SESSION['urlguia']!="urladmitida.php"){
// salgo de este script 
exit(); 


Cual crees que puede funcionar mejor esta opción o la de HTTP_REFERER que en el explorer y el firefox suele funcionar???


Gracias.
  #5 (permalink)  
Antiguo 18/03/2008, 16:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Como podría comprobar la url desde la que se cargar el php???

Debes de dividir tus prioridades, si quieres hacer algo fiable, usa sesiones, si quieres algo sencillo entonces usa HTTP_REFERER.

Saludos.
  #6 (permalink)  
Antiguo 18/03/2008, 18:29
 
Fecha de Ingreso: septiembre-2004
Ubicación: Chihuahua Mex
Mensajes: 404
Antigüedad: 19 años, 7 meses
Puntos: 2
Re: Como podría comprobar la url desde la que se cargar el php???

Porque no haces esto, en el archivo que quieres que accesen pon este codigo
Código PHP:
define('ACCESO'true); 
y en donde no quieres que accesen directamente ponle esto
Código PHP:
if (!defined('ACCESO')) {
    die (
"No Puedes Accesar directamente...");

Saludos
  #7 (permalink)  
Antiguo 19/03/2008, 01:22
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Re: Como podría comprobar la url desde la que se cargar el php???

Cita:
Iniciado por PANAFLAKIN Ver Mensaje
Porque no haces esto, en el archivo que quieres que accesen pon este codigo
Código PHP:
define('ACCESO'true); 
y en donde no quieres que accesen directamente ponle esto
Código PHP:
if (!defined('ACCESO')) {
    die (
"No Puedes Accesar directamente...");

Saludos
Podra servir esa forma si tengo frames y el usuario que haya iniciado session quiera ir a un pagina el cual tenga accesso pero que no ropa el equema de los frames???

saludos
espero sus comentarios

gracias
__________________
gerardo
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:32.