Ok, premetto che non sono una cima nella conoscenza del php/mysql, ma con un po' di applicazione ero arrivato a comprendere come effettuare un Login utilizzando le sessioni:
I dati del form di registrazione vengono inseriti in una tabella del Db. Se i dati immessi successivamente nel form per il Login corrispondono a quelli inseriti nella tabella, allora può avere inizio la sessione. Fin qui tutto bene, poichè l'action del form rimanda alla pagina dove vengono registrate le variabili di sessione. In breve il codice sarebbe questo:
<?
session_start();
//Codice di connessione al database
...
//Query SELECT per accertarsi che nick e pass siano corrispondenti
...
$nickname = $_POST['nickname'];
$password = $_POST['password'];
$... = $_POST['altricampi'];
if (...) { //dove le condizioni sono quelle espresse nella query per l'autenticazione
session_register('nickname');
session_register('password');
session_register('...');
header("Location: homepage.php");
}
?>
Questo codice in breve dovrebbe riportare alla home page dove ho compilato il form per effettuare il login con le variabili di sessione settate. Ma affinchè esse siano effettivamente settate devo ripetere il Login due volte, perchè la prima volta vengo riportato alla home, ma le variabili non sono settate, mentre la seconda volta sì.
Tuttavia ho notato che, appena effettuato il login, se ritorno alla home page tramite <a href...> oppure header("...") devo ripeterlo per la seconda volta, mentre se ritorno alla home page ridigitando il sito nella barra degli indirizzi del browser vengo immediatamente riconosciuto.
Qual'è il problema, dunque, per il quale devo effettuare due volte il Login?
Può dipendere dal modo in cui si viene reindirizzati alla home?
GraSSie!