Ragazzi ho un problema che non so come risolvere, allora ho una pagina che mi recupera dei dati a seconda di cosa fa l'utente, il problema e che per ogni azione la pagina deve reindirizzare l'utente ad un altra pagina con la funzione haders, solo che mi restituisce sempre questo errore:

Warning: Cannot modify header information - headers already sent by

So che non deve essere messo prima di nessun echo e senza spazi vuoi ma nel mio caso come faccio?
Codice PHP:
switch ($action) {
    case 
'Iscriviti':
    
$email = (isset($_POST['email'])) ? $_POST['email'] : '';
    
    
$query 'select user_id from ml_users';
    
$result mysql_query($query$db) or die (mysql_error($db));    
    
    if(
mysql_num_rows($result) > 0) {
        
$row mysql_fetch_assoc($result);
        
$user_id $row['user_id'];
    } else {
        
$query 'insert into ml_users (email, user_id) values ("' mysql_real_escape_string($email$db) . '")';
        
mysql_query($query$db);
        
$user_id mysql_insert_id($db);
    }
    
mysql_free_result($result);
    
            
$query 'insert into ml_subscriptions
            (user_id, pending)
            values
            (' 
$user_id ', TRUE) ';
            
mysql_query($query$db);    
            
            
$message 'Salve,' "\n" .
            
$message .='Conferma questo indirizzo di e-mail per essere inserito nella nostra newsletter, basta
            cliccare il link qui sotto:' 
"\n\n";
            
$message .= 'ml_user_transact.php?user_id=' .
            
$user_id .'&action=confirm' "\n\n\n";    
            
$message .='Se invece questa e-mail ti giunge in errore ignorala'"\n\n\n";
            
            
$mail = new SimpleMail();
            
$mail->setToAddress($email);
            
$mail->setFromAddress('');
            
$mail->setSubject('Conferma Iscrizione Newsletter');
            
$mail->setTextBody($message);
            
$mail->send();
            unset(
$email);
            
header('Location: ml_thanks.php');
            break;