Ver Mensaje Individual
  #13 (permalink)  
Antiguo 14/07/2004, 11:43
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Creo que tienese un gran lio con lo que hace "fopen()" y lo que realmente significa un acceso por HTTP.

fopen() ya te comenté que hace dos cosas bien diferentes dependiendo como se use ..

Si tu fopen() usa llamada tipo http:// .. el acceso cara a tu servidor HTTP es por ese médio donde el "cliente" en ese caso será PHP y no un navegador corriente. Lo mismo harías con funciones como include() pero con llamada http:// o haciendo una conexión vía sockets donde incluso "simularias" las cabeceras HTTP adecuadas para hacer pasar a tu script.php por cierto "navegador" conocido.

La solución que planteas vía programación y usando sesiones es correcta en su base: acceder por página X de tu sitio que creará una sesión (variable) y ..para ver lo que entregue tu nose.php verificas la existencia de esa variable de sesión .. Si no existe es que se está haciendo una llamada -directa- sin haber pasado por tu página de tu sitio que permite su acceso.

ejemplo básico:

x.php
Código PHP:
<?
session_start
();
$_SESSION['pasa']="da igual, se va a usar como flag";
header() .. o link hacia "nose.php"
?>
nose.php
Código PHP:
<?
session_start
();
if (empty(
$_SESSION['pasa'])){
die (
"Aquí no se puede acceder directo .. ");
}

// resto de tu página .. sea con + o - PHP por médio ...

?>
Este sistema tampoco es infalible 100% .. Implentando parte del protocolo HTTP para ir "simulando" la secuencia de: conectar a tu x.php y de ahí saltar a nose.php (con la gestión de cookies/url necesaria) también accederían a tu nose.php. Date cuenta que no estás "validando" nada más .. no hay un "usuario/contraseña" que pidas y que autentifiques. Pero por lo menos .. lo pones bastante más dificil.


Un saludo,