Ciao a tutti.
Da qualche giorno, programmando un semplice script di login ho incontrato alcune difficolta che proprio non riesco a superare.
Vi posto i punti salienti del codice... magari qualcuno di voi mi può aiutare.
Dunque... la pagina "config.php" fa sostanzialmente questo:
Codice PHP:
//[...]
setcookie("autenticazione","1",time()+60);
setcookie("ricorda","1",time()+60);
setcookie("pwd",sha1($_POST['pwd']),time()+60);
//$_POST['pwd'] è il contenuto di un campo di testo passato dalla pagina config.php a se stessa
//[...]
I cookie vengono creati correttamente.
A questo punto utilizzando la pagina "login.php" do la possibilità all'utente di inserire la password per accedere ai servizi del sito:
Codice PHP:
//[...]
//$_POST['pwd'] è il contenuto di un campo di testo passato dalla pagina login.php a se stessa
if( isset($_POST['pwd']) )
{
if( $_COOKIE['pwd'] == sha1($_POST['pwd']) )
{
//redirect a main.php
header("Location: $redirect_Window");
exit();
}
else
//Comunico che la password inserita è errata
}
//[...]
Anche in questo caso il codice funziona bene: l'utente inserisce la password. La pagina viene ricaricata. Vengono eseguite le istruzioni all'interno del primo "if". Se il controllo della password inserita dall'utente corrisponde con quella nel cookie si viene reindirizzati alla pagina "main.php".
in "main.php":
Codice PHP:
//[...]
if( empty($_COOKIE) )
echo "Errore: Il sito non è stato configurato.";
else
{
//[...]
}
//[...]
Quando viene caricata la pagina "main.php" viene sempre visualizzato il messaggio di errore.
I cookie, infatti, sembrano essere stati cancellati.
Girando su internet ho trovato informazioni relative alla funzione header la quale, a quanto sembra, crea un cookie exnovo cancellando il mio.
Tuttavia questa versione non mi convince molto: se così fosse, infatti, il cookie creato dalla funzione header dovrebbe esistere... e quindi il controllo "if ( empty($_COOKIE) )" non dovrebbe fallire.
Voi sapete dirmi, percaso, se c'è un modo di caricare automaticamente la pagina "main.php" preservando l'integrità dei miei cookie?
Eventualmente mi sapreste consigliare un'alternativa che potrei utilizzare?