Sono sicuro che di quest'errore si sia già parlato tanto, quindi probabilmente qualcuno mi saprà dire il perchè e in cosa sbaglio poichè ho bisogno di capire.
Ho realizzato molte volte uno script di login, però visto che all'inizio mi trovai di fronte a quest'errore ho usato sempre funzioni di redirect diverse dal "header" e in alcuni casi la funzione ob_start per permettere il corretto funzionamento di qualche script, ora però vorrei capire il perchè di questo errore in cosa sbaglio nello scrivere uno script? qualcuno può dare a questo semplice codice di uno script che effettua il login che genere l'errore:

Warning: Cannot modify header information - headers already sent by (output started at xxx\login.php8) in xxx\login.php on line 26

Codice PHP:
<?
//Effettuo la connessione al database
include("connessione.php");

//recupero username e password dal sito
$password $_POST['password'];
$username $_POST['username'];

//simulo che esistano dei dati accesso amministratore
$usernameadmin "pinco";
$passwordadmin "palla";

//se non hai inserito tutte le informazioni
if (empty($password)|empty($username))
{
        
//genero l'alarm
        
?>
        <SCRIPT type="text/javascript">
        alert("Non hai inserito la password oppure l'username!");
        </SCRIPT>
        <?
        header
("Location: modulologin.php"); //si ricarica la pagina di login
        
exit; 
}
 
//effettuo il controllo se sono o meno l'amministratore
if (($username==$usernameadmin)&($password==$passwordadmin))
{
        
//genero l'alarm
        
?>
        <SCRIPT type="text/javascript">
        alert("Benventuo Amministratore! Sta per essere reindirizzato al suo  
                          pannello di controllo");
        </SCRIPT>
        <?
        header
("Location: pannello_di_controllo.php"); //si carica il pannello di   
                          
controllo
        
exit; 
}
else
{
        
//seleziono le informazioni prenseti nel database corrispondenti a 
                         
username e password inseriti
        $query
="query di selezione delle info";
        
$result mysql_query($query$db);
        
//conto i risultati
        
$num_occorrenze mysql_num_rows($result);
        if (
$num_occorrenze==0)
            {
                
//genero l'alarm
                
?>
                <SCRIPT type="text/javascript">
                alert("Spiacente! Ha inserito  
                                                   password e/o username non ricoosciuti o non esatti");
                </SCRIPT>
                <?
                         header
("Location: modulologin.php"); //si carica il 
                                                   
pannello di controllo
                         
exit; 
            }
        if (
$num_occorrenze==1)
            {
                
//genero l'alarm
                
?>
                <SCRIPT type="text/javascript">
                         alert("Benvenuto! Lei è l'utente xxx e sta per essere 
                                                   reindirizzato!");
                </SCRIPT>
                <?
                header
("Location: paginax.php"); //si carica il 
                                                   
pannello di controllo
                
exit; 
            }
}        
//Chiudo la connessione
mysql_close($db);
?>