Accesso a un sito Sto lavorando alle funzioni come previsto sul mio computer locale ma non sul server remoto ma SOLO su Internet Explorer. Il kicker è che funziona in IE localmente, ma non sulla macchina remota.Le variabili di sessione non vengono impostate ma solo in Internet Explorer e non su tutte le macchine
Cosa diavolo potrebbe causare questo? Ho passato il codice sulla macchina remota e posso vedere i valori di accesso immessi verificati nel database, vengono trovati e quindi viene chiamata una funzione di accesso. Imposta due variabili $ _SESSION e reindirizza alla pagina principale dell'amministratore. Tuttavia, solo in IE (e non quando viene eseguito su un computer locale ... questa è la chiave) le variabili $ _SESSION non sono presenti quando arrivi alla pagina principale dell'amministratore. var_dump($_SESSION)
mi dà quello che mi aspetto su ogni browser quando sto eseguendo questo nel mio ambiente locale e in ogni browser tranne IE 6, 7 e 8 quando viene eseguito sul server remoto (dove ottengo un valore nullo come se nulla fosse stato impostato per $ _SESSIONE).
Questo mi ha davvero bloccato per cui ogni consiglio è apprezzato.
Per un esempio ... in IE, eseguito a livello locale, var_dump mi dà:
array
'Username' => string 'theusername' length=11
'UserID' => string 'somevalue' length=9
Esegui sul server remoto (cioè solo ... funziona bene in altri browser) var_dump mi dà:
array(0){}
codice (un esempio minimo ... anche se in realtà un esempio di codice non è necessaria con questo problema):
$User = GetUser($Username, $Password);
if ($User->UserID <> "") { // this works so we call Login()...
Login($User); // this also works and gives expected results. on to redirect...
header("Location: index.php"); // a var_dump at index.php shows that there is no session data at all in IE, remotely.
} else {
header("Location: login.php");
}
function Login($data) {
$_SESSION['Username'] = $data->Username;
$_SESSION['UserID'] = $data->UserID;
// a var dump here gives the expected data in every browser
}
EDIT: Risolto questo. Era il fatto che il nome del dominio sul server di test aveva un trattino basso. Non ho idea del perché e non ho tempo per Google in questo momento, ma il trattino basso, chiamato qualcosa come some_client.ourcompany.com, era il problema. Devo amare Internet Explorer ... è come un collaboratore passivo e aggressivo che semplicemente non puoi evitare.
Esempio di codice da esaminare? –
Hai incluso 'session_start();' in cima a ciascuna pagina? – Alec
Hai inserito session_start(); in cima ad ogni pagina? Sì. – Stuart