Foros del Web » Programando para Internet » PHP »

Saber si la pagina fue incluida o requerida por otra

Estas en el tema de Saber si la pagina fue incluida o requerida por otra en el foro de PHP en Foros del Web. Que tal foreros Resulta que tengo una pagina madre, que llama a otras mediante require() o include()... Necesito que las paginas 'hijas' solo se puedan ...
  #1 (permalink)  
Antiguo 23/02/2005, 18:36
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 1 mes
Puntos: 2
Saber si la pagina fue incluida o requerida por otra

Que tal foreros

Resulta que tengo una pagina madre, que llama a otras mediante require() o include()...

Necesito que las paginas 'hijas' solo se puedan ver si fueron llamadas desde 'madre', o sea si alguien llegase a conseguir el nombre de una hija, y quiera visualizarlo desde su navegador, sin que haya sido llamada desde madre.. muestre un error y que no se vea la pagina.

Pues me imagino que tendra que ver algo con el 'referer' pero no he podido concretarlo


Saludos y gracias
  #2 (permalink)  
Antiguo 23/02/2005, 18:46
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Utilizando el buscador econtré esto... solo uno de tantos ejemplos.
http://www.forosdelweb.com/f18/evitar-acceso-paginas-incluidas-233820/
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 23/02/2005, 18:50
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 1 mes
Puntos: 2
hola

agradezco tu pronta respuesta

pero la verdad no se me habia ocurrido como buscar

gracias y disculpa por eso.


Un saludo
  #4 (permalink)  
Antiguo 23/02/2005, 18:59
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Por favor no te disculpes...
Te mando algo en lo que hice un comentario de cómo podría hacerse de con $_SERVER['HTTP_REFERER']... pero el buen Cluster mencionó que carece de seguridad
http://www.forosdelweb.com/f18/sesion-acceso-solo-si-270640/

que aún así no creo que sea es lo que necesitas ya que está pensado en llamar a las páginas por links.. y tu dices que es por include()... pero quizá la solución a la que se llegó te sirva...

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 23/02/2005 a las 19:01
  #5 (permalink)  
Antiguo 23/02/2005, 20:14
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
Al principio d ecada página hija puedes consultar por el nombre del archivo cargado en la URL, si el nombre es igual al nombre d ela pagina hija, bloqueas la lectura d ela página por parte del navegador y muestras un mensaje de error.

Un ejemplo para paginahija1.php

if(basename($_SERVER['PHP_SELF']) == "paginahija1.php"){
die("Acceso no autorizado");
}


Eso lo haces al principio d ecada pagina hija, obviamente modificando el nombre a comparar.
__________________
El conocimiento es libre: Movimiento por la Devolución
  #6 (permalink)  
Antiguo 23/02/2005, 22:23
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 1 mes
Puntos: 2
hola

agradezco sus respuestas

finalmente lo hice asi

en madre

define("madre", true);


y en hijas

if(!defined('madre')) {
die("You cannot access this file directly.<br>No puedes acceder a este archivo directamente.");
}



funciona de lujo

¿es lo mas optimo?

que opinan?


salu2!

pd: felzi cumpleaños para mi =D
  #7 (permalink)  
Antiguo 24/02/2005, 05:44
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 19 años, 2 meses
Puntos: 0
la verdad que me parece una solucion bastante sencilla!!! :)
eso si, fijate si tienes desactivada la opcion register_globals ya que de lo contrario, si utilizo la siguiente url y tenes activa register_globals no te va a servir:

www.loquesea.com/paginahija1.php?madre=true

si tenes register_globals activado, te va a crear una variable que se llame madre y posea el valor true. Claro esta que la otra persona tiene que saber el nombre de la variable y el contenido que debe tener para que te lo tome bien, de ultima podes utilizar un nombre complicado para la variable y/o un contenido tambien dificil de adivinar...

saludos!!
__________________
Diegote ::.

www.mmsolutions.com.ar

Última edición por diegodlf; 24/02/2005 a las 05:47
  #8 (permalink)  
Antiguo 24/02/2005, 07:06
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 1 mes
Puntos: 2
hola
tengo entendido que como es uan constante, no hay dramas con eso, de tdas formas son is servidores y esta off

saludos y gracias
  #9 (permalink)  
Antiguo 24/02/2005, 07:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si realmente trabajas con include() .. puedes usar várias funciones sobre el tema:

Si no quieres que se incluya nuevamente un archivo ya incluido .. usa:
include_once()
Con esa función .. es PHP el que determina si cargar y ejecutar el código que se llama si ya lo hizo anteriormente ..

También puedes usar "manualmente" para detectar ese evento:
get_included_files()

Ahí obtendrás un array con todos los "include()" que tiene tu script ...

Un saludo,
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 03:01.