Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Sinedra en 27 Enero 2011, 16:26 PM

Título: Bloquear acceso directo a paginas
Publicado por: Sinedra en 27 Enero 2011, 16:26 PM
Tengo una web que incluye un par de archivos...

ejemplo:

index.php?id=4 ---> incluye a pagina4/index.php

lo que quiero restringir es el acceso directo a pagina4/index.php y que solo se pueda acceder por medio de index.php?id=4

como se hace en php?

Saludos!
Título: Re: Bloquear acceso directo a paginas
Publicado por: .mokk. en 27 Enero 2011, 16:48 PM
Nose si sea esto lo que buscas pero al principio del index.php podrias colocar esto:

Código (php) [Seleccionar]

if(!isset($_GET[id])){
die("No tienes acceso aqui! bye (:");
}


Título: Re: Bloquear acceso directo a paginas
Publicado por: bomba1990 en 27 Enero 2011, 21:16 PM
bueno yo el otro dia estuve viendo el codigo de joomla y para ellos lograr lo que tu quieres hicieron esto,

pusieron en la principal define() que se usa para definir una constante. y en cada pagina usaban un defined que averigua si esa contante a definida.

en joomla en el index.php sale esto:
Código (php) [Seleccionar]
// Set flag that this is a parent file
define( '_JEXEC', 1 );


y en todos los modulos sale esto
Código (php) [Seleccionar]
// no direct access
defined('_JEXEC') or die('Restricted access');
Título: Re: Bloquear acceso directo a paginas
Publicado por: Sinedra en 28 Enero 2011, 19:58 PM
Cita de: .mokk. en 27 Enero 2011, 16:48 PM
Nose si sea esto lo que buscas pero al principio del index.php podrias colocar esto:

Código (php) [Seleccionar]

if(!isset($_GET[id])){
die("No tienes acceso aqui! bye (:");
}




habia pensado este mismo sistema, el problema es que si pones paginaprohibida.php?id=cualquiercosa se muestra el contenido igual xd FAIL jaja entonces no se como se podra hacer mas seguro...

Cita de: bomba1990 en 27 Enero 2011, 21:16 PM
bueno yo el otro dia estuve viendo el codigo de joomla y para ellos lograr lo que tu quieres hicieron esto,

pusieron en la principal define() que se usa para definir una constante. y en cada pagina usaban un defined que averigua si esa contante a definida.

en joomla en el index.php sale esto:
Código (php) [Seleccionar]
// Set flag that this is a parent file
define( '_JEXEC', 1 );


y en todos los modulos sale esto
Código (php) [Seleccionar]
// no direct access
defined('_JEXEC') or die('Restricted access');


se ve interesante... aunque no entiendo muy bien como funciona.. me podrias explicar?
Título: Re: Bloquear acceso directo a paginas
Publicado por: bomba1990 en 31 Enero 2011, 00:18 AM
es sencillo en la pagina principal se coloca.

Código (php) [Seleccionar]
define( '_JEXEC', 1 );// esto define una constante

y cada una de las paginas que deberia salir interna se coloca

Código (php) [Seleccionar]
defined('_JEXEC') or die('Restricted access');//comprueba si la constante esta definida