Ciao a tutti, ho un problema con le sessioni in php che spero qualcuno di voi riesca a risolvere... Praticamente il codice per le sessioni che ho fatto funziona in windows con internet explorer, firefox a volte, opera ecc... Ma quando li utilizzo su un Mac su safari nella maggior parte delle pagine mi dà che l'username è vuoto, cioè la variabile username della sessione non è registrata... Questo è il codice..:
controllo_login.php
Codice PHP:
$username = $HTTP_POST_VARS['username'];
$password = $HTTP_POST_VARS['password'];
if($username == "" || $password == "" ) //Se alcuni campi non sono compilati...
{
die("Alcuni campi non sono compilati"); //...terminiamo lo script e mandiamo un errore all'utente
}
//
//Recuperiamo i dati dal database e li controlliamo
//
$query = "SELECT * FROM utenti WHERE username = '$username'"; //Impostiamo la query...
$risultato = mysql_query($query) //...e la eseguiamo
or die("Impossibile eseguire query.
".mysql_error()); //Oppure mandiamo il solito errore
$riga = mysql_fetch_array($risultato); //Fissiamo la riga
if(mysql_num_rows($risultato) == 0 || $riga['password']!=$password) //Se l'username o la password sono sbagliati...
die("Username e/o password errati"); //..mandiamo l'errore e terminiamo lo script
else //Altrimenti...
{
session_start(); //..avviamo la sessione...
$HTTP_SESSION_VARS['username'] = $username; //...e salviamo i dati in essa
$HTTP_SESSION_VARS['password'] = $password;
}
controllo_dati.php
Codice PHP:
session_start ();
$username = $HTTP_SESSION_VARS['username'];
$password = $HTTP_SESSION_VARS['password'];
if ($username=="")
die ("Non hai i diritti per accedere a questa pagina");
Nelle pagine in cui ho problemi mi viene scritto "Non hai i diritti per accedere a questa pagina", naturalmente, però non lo dovrebbe fare perchè la sessione non è scaduta e la variabile username non dovrebbe essere vuota.. aiuto..