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] . '» ';
}
$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!!!


Rispondi quotando