Ver Mensaje Individual
  #28 (permalink)  
Antiguo 07/11/2003, 06:25
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 8 meses
Puntos: 129
HTTP_REFERRER es una variable de servidor y vía PHP puedes consultar esas variables de serividor (entorno) con el array superglobal $_SERVER (o también de forma global si usas register_globals a ON con $HTTP_REFERRER o por $HTTP_SERVER_VARS['HTTP_REFERER']).

Esa variable de servidor la define las normas de standard CGI (Commun Gateway Interface). Lo que entrega es el nombre (y URL completo) desde donde se llamó a tu script (la página referida).

Ese valor, lo uso para identificar de forma rápida que se ha accedido directamente y sin pasar por la autentificación (login) a alguna de tus páginas protegidas o incluso intentar ejecutar directamente aut_verifica.inc.php . Es una manera "rápida" de terminar el script si se accede directamente (sin necesidad de crear la sesión y mirar si hay esos datos creados).

También uso ese valor de la "página referida" para detectar que pagina que contiene el formulario de autentificación (login) para que en caso de existir algún error en el "login" (el usuario se equivocó de contraseña .. o el usuario no existe ..etc), devolver a dicha página un código de error y con el código que indico en la documentación .. mostar el error en consecuencia donde quieras en tu página. De esta forma, no te "fuerzo" a que uses un formulario de "login" fijo, sino que vários formularios pueden apuntar a esas páginas autentificadas y por lo mismo, tampoco fuerzo a que sea de nombre tal.php. Si el valor de HTTP_REFERER no se puede obtener .. esa funcionalidad de Autentificator se pierde.

Independientemente de esa verificación .. el scirpt sigue validando a tu usuario por la sesión o contrastando los datos que puedan llegar por POST (supuestamente lanzados desde un formulario). Si no se cumple alguna de esas condiciones, igualmente se termina el script y no dejá pasar a tu página autentificada. Sólo es una pequeña "optimización" del código.

EL "HTTP_REFERER" como variable de servidor .. algunos dispositivos de red tipo Firewalls, Proxys, Routers y por el estilo, NO entregan esa información a tu servidor HTTP o la capturan para no entregartela o bien cambiarla. Si hace esto, ese "IF" que mira el valor de HTTP_REFERER "saltará" y te dará el error Cod.1.

Soy consciente de ese problema .. así que en próximas versiones de Autentificator quitaré esa sección del código para que no dé problemas con Firewalls o Proxys.

Si quieres ver más variables de servidor:
http://www.php.net/manual/en/reserved.variables.php

Ahí tienes el Link hacia la documentación del standard CGI por si quieres verla.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.