ehm ... ricordo a tutti che usare il referer è un PURO suicidio: il referer viene spedito dal BROWSER al server e neanche sempre dato che ci sono antivirus o antispyware che per sicurezza (ma non si sa quale) o privacy (anche qui è tutto relativo) lo bloccano!

E' molto meglio utilizzare le sessioni per effettuare questo tipo di tracciatura!!!

qualcosa tipo
$_SESSION['uri_referer'] = $_SERVER['PHP_SELF'];

(con session_start messo all'inizio della pagina e la riga sopra messa alla fine)

In modo che lo si traccia internamente e si sta tranquilli di averlo sempre e di averlo affidabile e non taroccato!!!

Inoltre usando le sessioni invece di mettere il nome del file puoi mettere un titolo corrispondente al percorso su disco ... invece di fare il PHP_SELF (che sarà per esempio /var/www/vhosts/nomesito/htdocs/pagina/file.php) puoi fare

$_SESSION['uri_referer'] = substr($_SERVER['PHP_SELF'], strlen($_SERVER['DOCUMENT_ROOT']));

o

$_SESSION['uri_referer'] = substr($_SERVER['PHP_SELF'], strlen($_SERVER['DOCUMENT_ROOT']) + 1);

(vedete con quale non viene lo slash all'inizio del valore)

e quindi poi fai una funzione che da quel valore ti ricava il nome della pagina

O ancora meglio puoi mettere dentro le sessioni invece che uri_referer un array contenente un sotto array con l'elenco dei titoli in cascata e un altro valore che indica la profondità corrente! Per fare un esempio

$titolo = '';
for($i=0; $i < $_SESSION['referer']['depth']; $i++)
{
$titolo .= $_SESSION['referer']['page'][$i] . '&raquo; ';
}
$titolo .= $titolo_corrente;

e poi aggiorni l'array di page e la depth in base ad uno spostamento delle pagine (lo fai regolare al software)

O ancora ci sono mille modi migliori ... poi tutto dipende dalle tue necessità

Ovviamente se usate le sessioni su database è ancora meglio, ma è un altro discorso!!!