HTTP_REFERER no es un dato válido para fiarse e implementar sistemas de seguridad o útilidad a la aplicación basado en el...
'HTTP_REFERER'
La dirección de la página , si existe o la hay, la cual refirió al agente de usuario a la página actual. Este valor es definido por el agente de usuario. No todos los agentes de usuario lo definen, y algunos proveen la capacidad de modificar HTTP_REFERER como una característica del software. En resumen, no se puede confiar realmente en este valor.
mas info -->
http://es.php.net/manual/es/reserved.variables.php
una de las maneras seria usando sessiones pero esto dependera de lo que deseas hacer, por ejemplo si estas mostrando un formulario de registro de tres pasos y el usuario se va luego regresa, la aplicacion deberia tomar una desicion una seria eliminar todo los datos volcados por el usuario otra seria, obligar al usuario a continuar, y una ultima seria si cierra el navegador elminar todo ...
yo lo hago siempre con sesiones creo una session en cada pagina o una super global... pero es mas complicado...
prueba esto :
$_SESSION['historial_navegacion'] = $_SERVER['PHP_SELF'] ;
de todos modos dependera de lo que tu quieras hacer ...
saludos!!!