Ciao a tutti, spero possiate aiutarmi.. Sul mio sito ognmi utente può loggarsi attraverso una pagina di login che manda i dati alal pagina index1.php. Questa pagina salva i dati in delle variabili di sessione. Inoltre in ogni altra parte del sito c'è un controllo della sessione. Ecco il codice:
index1.php
Codice PHP:
session_start(); //..avviamo la sessione...
//
//Controlliamo se tutti i campi sono compilati
//
$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['username'] = $username; //...e salviamo i dati in essa
$_SESSION['password'] = $password;
}
/* e poi va avanti.... */
controllo_dati su ogni pagina
Codice PHP:
session_start ();
$username = $_SESSION['username'];
$password = $_SESSION['password'];
if ($username=="")
die ("Non hai i diritti per accedere a questa pagina o la tua sessione è scaduta.");
Il problema che non riesco a risolvere, nè a capire, è che questo codice funziona, ma non sempre... Per esempio in Safari non funziona, cioè $_SESSION['username] è vuota... Succede lo stesso a volte in Firefox... Avreste un'idea???