Salve a tutti. Ho un sito con una pagina index.php in cui effettuare il log-in, una pagina redirect_login.php che controlla i dati inseriti per il log-in, salva le variabili di sessione richieste e crea il cookie, e una pagina redirect_logout.php che cancella la sessione corrente e "dovrebbe" cancellarmi il cookie.
Utilizzo il cookie, come molti di voi avranno capito, per rendere l'accesso automatico in caso di accessi precedenti, nel caso in cui si voglia (come in molti forum o cose simili, compreso questo ). Ho però un problema: non riesco a cancellare il cookie.
Cercherò di spiegare passo passo: la mia pagina index.php è generata dal php e stampa o l'area di log-in, oppure, in caso di accesso autorizzato dopo il login, l'homepage.
L'area redirect_login.php effettua il controllo con il DB e setta il cookie :
Codice PHP:
    $nickname $_POST['nickname'];
    
$password $_POST['password'];
    
    
$query_auth "SELECT * FROM utenti WHERE nickname = '$nickname' AND password = '$password'";
    
$ris_auth mysql_query($query_auth,$conn) or die ("Errore nella query: " .mysql_error());
    
$utente mysql_fetch_array($ris_auth);
    
    if(
is_array($utente)){
        
$msg "Accesso in corso. Attendere prego.";
        
//salvo tutti i dati nelle variabili di sessione
        
$_SESSION['nome'] = $utente[nome];
        
$_SESSION['cognome'] = $utente[cognome];
        
$_SESSION['nickname'] = $utente[nickname];
        
$_SESSION['uid'] = $utente[id];
        
$_SESSION['email'] = $utente[email];
        
$_SESSION['telefono'] = $utente[telefono];
        if(
$_POST['ricorda'] == "ricordami")
            
setcookie("login","$utente[id]",time()+60*60);
    }    
    else 
$msg "Nickname o password errati. Attendere prego."
A questo punto, se i dati sono corretti, index.php stamperà l'homepage e tutto il resto. Notare $_POST['ricorda']: è una checkbox classica in cui si dice "ricordami ogni volta che mi connetto". Se è stata checkata, il cookie "login" sarà settato per un'ora, così, nel caso in cui l'utente si ricolleghi, l'accesso verrà effettuato automaticamente dall'index.php, con questo codice:
Codice PHP:
    if(isset($_COOKIE['login'])){
            
$query_auth "SELECT * FROM utenti WHERE id = '" .$_COOKIE['login'] ."'";
            
$ris_auth mysql_query($query_auth,$conn) or die ("Errore nella query: " .mysql_error());
            
$utente mysql_fetch_array($ris_auth);
    
        if(
is_array($utente)){
            
//salvo tutti i dati nelle variabili di sessione
            
$_SESSION['nome'] = $utente[nome];
            
$_SESSION['cognome'] = $utente[cognome];
            
$_SESSION['nickname'] = $utente[nickname];
            
$_SESSION['uid'] = $utente[id];
            
$_SESSION['email'] = $utente[email];
            
$_SESSION['telefono'] = $utente[telefono];
        }    
    } 
A questo punto, quando effettuo il logout, oltre a cancellare la sessione corrente, vorrei cancellare anche il cookie, ma non riesco. Il codice del redirect_logout.php è semplicemente questo:
Codice PHP:
            print "Arrivederci " .$_SESSION['nickname'] ."!

                     Disconnessione in corso, attendere prego."
;
            if(isset(
$_COOKIE['login'])){
                
setcookie("login",$_SESSION['uid'],time()-3600);
            }
            
session_unset(); 
solo che, invece di cancellare il cookie, mi da quest'errore:

Warning: Cannot modify header information - headers already sent by (output started at C:\...\redirect_logout.php:12) in C:\...\redirect_logout.php on line 31

cosa sbaglio? Grazie