Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2010, 05:46
Avatar de juanmiguel
juanmiguel
 
Fecha de Ingreso: enero-2009
Mensajes: 18
Antigüedad: 11 años, 1 mes
Puntos: 0
No permitir ejecutar script desde la barra de direcciones

Hola a todos, es mi primer mensaje en el foro y lo primero quería agradeceros vuestra ayuda.

A ver si tengo suerte y me podeis ayudar a resolver una duda, necesito poder comprobar que el script php no se esta ejecutando directamente desde la barra de direcciones. Es decir que si pone en la barra de direcciones http://www.midominio.com/no_accesible.php me mande a la página http://www.midominio.com/login.php pero que si hago un include dentro de un script del script no_accesible.php me funcione. Es decir poder hacer includes pero no ponerlo directamente en la barra de direcciones.

He probado con esto:

Script llamado no_accesible.php, está modificado para que me saque por pantalla las variables y no me redireccione:

Código PHP:
Ver original
  1. <?php
  2. $script_filename=substr($_SERVER["SCRIPT_FILENAME"],strrpos($_SERVER["SCRIPT_FILENAME"],"/")+1,strlen($_SERVER["SCRIPT_FILENAME"]));
  3. $request_uri=substr($_SERVER["REQUEST_URI"],strrpos($_SERVER["REQUEST_URI"],"/")+1,strlen($_SERVER["REQUEST_URI"]));
  4.  
  5. if ($script_filename == $request_uri) {
  6.   //header("Location: $sitio_web");
  7.   echo $script_filename."<br>";
  8.   $request_uri;
  9. }
  10. ?>

Ahora hago un include de ese script en otro llamado administracion.php:

Código PHP:
Ver original
  1. <?php
  2. include "no_accesible.php";
  3. ?>
  4. HOLA

Pero la variable script_filename me da siempre el script que se está ejecutando no donde realmente está el código.

¿Como podría hacer esta comprobación?

Saludos.

Juanmi.