Vero, avevo dimenticato l'opzione!!
Prova questo, dovrebbe andare...

Codice PHP:
<?php 
function showform($errore

        echo 
$errore.'


        <form name="input" action="'
.$_SERVER['PHP_SELF'].'" method="post"> 
        Username: <input type="text" name="user">
 
        Password: <input type="password" name="pwd">

 
        <input type="submit" value="Submit"> 
        </form>'
;
}

/*verifico se le 2 variabili sono impostate, se non lo sono vuol dire ho aperto ora la pagina
perciò vado all'else relativo, aprendo il form senza errori con showform("")*/
if (isset($_POST['user']) or isset($_POST['pwd'])){ 

/* se arrivo qua vuol dire che ho clikkato su Submit perciò le variabili sono state create*/

   
if ($_POST['pwd']==""  && $_POST['user']==""//se entrembe sono vuote
       
showform("Campo user e password vuoti!!"); 
   elseif (
$_POST['user']==""//altrimenti se manca solo il nome utente
       
showform("Campo utente vuoto!!"); 
   elseif (
$_POST['pwd']==""//altrimenti ancora se manca solo la password
       
showform("Campo password vuoto!!");
   else 
//se arrivo quà è tutto ok perciò proseguo alla verifica
      
{
      
//codice verifica login
      
}

} else { 
    
showform(""); 

?>
l'ho testato... è ok
Ho commentato il codice per chiarezza, spero ti sia utile.

Ciao.