Un'altra osservazione su:

function check_username($value)
{
global $_CONFIG;
$value = trim($value);
if ($value == "") return "Il campo non può essere lasciato vuoto";
$query1 = "SELECT id FROM utenti WHERE username='".$value."';";
$result= connessione($sql);
$count=mysql_num_rows($result);
if (mysql_num_rows($count) != 0)
return "Nome utente già utilizzato";
return true;
}


Quando fai:

$result= connessione($sql);

in connessione apri la connessione al DB, esegui la query mettendo il risultato nella var.le $rs che poi ritorni e chiudi la connessione al DB:

$rs=mysql_query($sql) or die ("errore query");
mysql_close($connessione);
return $rs;


Quando poi riprendi con check_username

mysql_num_rows($count);

a questo punto però il DB lo hai chiuso quindi onestamente non so se questa istruzione venga eseguita correttamente