-
strano problema
Stò creando un sito in php che in locale non mi da problemi mentre se lo carico sul server (non quello di altervista ma un altro) mi crea dei problemi che provo a spiegare brevemente:
In fase di login, se i dati inseriti sono corretti metto una var in sessione
$_SESSION['login']=1;
In alcune pagine (protette) controllo se la variabile suddetta è impostata ad 1;
se è 1 visualizzo la pagine
altrimenti segnalo l'errore
nella pagina di controllo faccio la cosa seguente:
$login = $_SESSION['login'];
if($login != 1)
...
errore
...
else
carica pagina
Come sopra ho detto in locale non ho problemi mentre sul server che utilizzo se faccio $login = $_SESSION['login']; in login non mi restituisce nulla quindii va sempre in errore, se invece uso $login senza importarla dalla sessione funziona!
Come se lui vede $login come se fosse $_SESSION['login']
Come posso fare?
Credo che la versione corretta sia quella che implemento in locale, come posso fare?
Grazie
-
può essere un problema di register_globals in php.ini?Non ho capito benissimo che vuoi dire però ti consiglio sempre di usare le variabili adatte tipo $_SESSION['login'] e non $login per indicare quella precedente
-
prova a cambiare il nome della variabile. Non chiamare la variabile con lo stesso nome di quella di sessione.
Es.
Codice PHP:
$verifica=$_SESSION['login']
if $verifica != 1 then ....
ecc....
Capito cosa intendo? se la sessione ha la variabile LOGIN cerca di evitare di mettere una variabile esterna che si chiami anch'essa login. Prova così e facci sapere (ti parlo per esperienza). Spero di aver capito e risolto il tuo problema
-
Nella pagina in cui verifiche la variabile $_SESSION['login']
ti devi per prima cosa ricollegare alla sessione con session_start(); e poi leggere la variabile di sessione login.