è una soluzione poco elegante ma per il momento può andare:


questo blocco lo devi spostare prima di qualsiasi output, aggiungendo il setcookie:
Codice PHP:
    if(isset($_POST['submit1'])) {
        
$db mysql_connect($db_host$db_user$db_password) or die('Errore connessione database');
        
mysql_select_db($db_name$db) or die('Errore selezione database');
    if((
$_POST['user']) && ($_POST['pwd'])) {
        
$query "SELECT admin_ID FROM admin_newsletter WHERE user = '$_POST[user]' AND password = '$_POST[pwd]'";
        
$risultato mysql_query($query);
        
$num mysql_num_rows($risultato);

            if(
$num>0) {
setcookie('logged',TRUE);

                
Header("Location: $file?funzione=crea_newsletter");

                } else {
                    echo
"<script>alert('User o password sbagliati.');</script>";
   }
  }
 } 
e poi prima del "commutatore" metti...

Codice PHP:
[...]

if (!
$_COOKIE["logged"])
echo 
login();
else 
// da qui in poi è quello che già c'era...
switch($_GET['funzione']) {

    case 
amministrazione:
        
amministrazione();
    break;
    case 
crea_newsletter:
        
crea_newsletter();
    break;
    default:
        
login();

fammmi sapere se funge...