ti provo ad allegare il codice del login... magari si trova qui l' errore:
codice:
<?
}

function effettua_login()
{
   // recupero il nome e la password inseriti dall'utente
   $mail      = trim($_POST['mail']);
   $password  = trim($_POST['password']);
   // verifico se devo eliminare gli slash inseriti automaticamente da PHP
   if(get_magic_quotes_gpc()) {
      $mail      = stripslashes($mail);
      $password  = stripslashes($password);
   }

   // verifico la presenza dei campi obbligatori
   if(!$mail || !$password) {
      $messaggio = urlencode("Non hai inserito la mail o la password");
      header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
      exit;
   }
   // effettuo l'escape dei caratteri speciali per inserirli all'interno della query
   $mail     = mysql_real_escape_string($mail);
   $password = mysql_real_escape_string($password);   

   // preparo ed invio la query
   $query = "SELECT ID FROM registrazionin WHERE mail = '$mail' AND password = MD5('$password')";
   $result = mysql_query($query);
   // controllo l'esito
   if (!$result) {
      die("Errore nella query $query: " . mysql_error());
   }

   $record = mysql_fetch_array($result);

   if(!$record) {
      $messaggio = urlencode('Nome utente o password errati');
      header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
   } else {
      session_start();
      $_SESSION['ID'] = "$ID";
      $_SESSION['mail'] = "$mail";
      $_SESSION['password'] = "$password";
      $messaggio = urlencode('Login avvenuto con successo');
      header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
      header("location: home.php?lang=it_IT");
   }
}
?>