Non mi ero accorto...

In pratica perchè questo script funzioni deve esserci global_vars settato a ON. Siccome nella stragrande maggioranza degli host (e di default sugli apache "amatoriali") è in OFF devi recuperare le variabili con l'array $_POST...cosi dovrebbe funzionare:

Codice PHP:
<html>
<head>
<title>Listato 12-3: Aggiunta dell input utente ad un database</title>
</head>
<body>
<?php
$dominio 
$_POST['dominio'];
$sesso $_POST['sesso'];
$email $_POST['email'];

if (isset(
$dominio) && isset($sesso) && isset($email))
{
    
$erroredb "";
    
$ret aggiungi_al_database($dominio$sesso$email$erroredb);
    if (!
$ret)
        print 
"Errore: $erroredb
"
;
    else
        print 
"Grazie 1000!";
}
else
{
    
scrivi_form();
}

function 
aggiungi_al_database($dominio$sesso$email$erroredb)
{
    
$utente "fabiano";
    
$pass "xxxxxxx";
    
$db "test";
    
$link mysql_pconnect"localhost"$utente$pass );
    if ( ! 
$link )
    {
        
$erroredb "Non posso connettermi a MySQL";
        return 
false;
    }
    if (! 
mysql_select_db$db$link ))
    {
        
$erroredb mysql_error();
        return 
false;
    }
    
$query "INSERT INTO domini (dominio, sesso, email) VALUES ('$dominio', '$sesso', '$email')";
    if ( ! 
mysql_query ($query$link))
    {
        
$erroredb mysql_error();
        return 
false;
    }
    return 
true;
    
mysql_close($link);
}

function 
scrivi_form()
{
    global 
$PHP_SELF;
    global 
$dominio;
    global 
$sesso;
    global 
$email;
    print 
"<form action=\"$PHP_SELF\" method=\"POST\"\n";
    print 
"<input type = \"text\" name=\"dominio\">";
    print 
"Scegli il dominio che vuoi

\n"
;
    print 
"<input type = \"text\" name=\"email\">";
    print 
"Inserisci il tuo indirizzo email

\n"
;
    print 
"<select name=\"sesso\">\n";
    print 
"\t<option value=\"F\">Femminile\n";
    print 
"\t<option value=\"M\">Maschile\n";
    print 
"</select>\n";
    print 
"<input type=\"submit\" value=\"Invia\">\n </form>\n";
}
?>