Salve a tutti... ho un problema stranissimo che non riesco a risolvere, ho provato a cercare un po' ma non ho trovato nulla di utile per il mio problema.
Molto brevemente, ho un index in cui faccio l'include di una pagina passata tramite querystring. Memorizzo questa pagina in una variabile di sessione, in modo da costruirmi un referer e sapere, nella prossima pagina, qual è la pagina di provenienza.
Questo il codice minimale, privato di tutti i controlli/intestazioni/footer/etc per evitare di appesantire la logica di funzionamento:
Codice PHP:
/* index.php */
session_start();
$page = $_GET['page'];
include($page . ".php");
$_SESSION['referer'] = $page;
Supponiamo di avere 3 pagine (pag1.php, pag2.php e pag3.php), in ognuna delle quali avrò un'echo del valore di $_SESSION['referer'] e di visitare, nell'ordine:
codice:
1. index.php?page=pag1
2. index.php?page=pag2
3. index.php?page=pag3
4. index.php?page=pag3
5. index.php?page=pag1
Cosa dovrebbe succedere:
codice:
1a. echo di "Notice: Undefined index: referer in pag1.php on line 2";
1b. $_SESSION['referer'] = 'pag1';
2a. echo della stringa 'pag1';
2b. $_SESSION['referer'] = 'pag2';
3a. echo della stringa 'pag2';
3b. $_SESSION['referer'] = 'pag3';
4a. echo della stringa 'pag3';
4b. $_SESSION['referer'] = 'pag3';
5a. echo della stringa 'pag3';
5b. $_SESSION['referer'] = 'pag1'.
...etc etc.
Insomma, il funzionamento è piuttosto elementare.
Il problema è che, per una sola di queste pagine, la variabile di sessione cambia automaticamente valore ad una stringa nota (sempre la stessa), utilizzata in un altro punto della pagina "index.php".
Il "bello" è che ho testato con un echo il valore di $_SESSION['referer'] in ogni punto critico dell'index (e anche nelle pagine incluse) ed ho scoperto che, per questa pagina, conserva il suo valore esatto fino alla fine (l'ho testata dopo </html>), ma poi all'inizio della successiva (appena dopo session_start(); ) ha già cambiato valore.
Quale può essere il problema? Sto letteralmente impazzendo..!!