Si Ho provato ha fare quello che hai detto tu e adesso me lo da in bianco invece della scritta di prima ossia "Registrazione Fallita a causa di un errore interno.". Prima non hai capito quello che ho postato perché ho sbagliato io aspetta che te la rinvio

Prima era cosi

function reg_register($data){
//registro l'utente
global $_CONFIG;

$id = reg_get_unique_id();
mysql_query("
INSERT INTO ".$_CONFIG['table_utenti']."
(name, surname, indirizzo, occupazione, username, password, temp, regdate, uid)
VALUES
('".$data['name']."','".$data['surname']."','".$data['indirizzo']."',
'".$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'),
'1', '".time()."','".$id."')");

//Decommentate la riga seguente per testare lo script in locale
echo "<a href=\"http://localhost/Articoli/autenticazione/2/scripts/confirm.php?id=".$id."\">Conferma</a>";
if(mysql_insert_id()){
return reg_send_confirmation_mail($data['mail'], "test@localhost", $id);
}else return REG_FAILED;
}


function reg_send_confirmation_mail($to, $from, $id){
//invio la mail di conferma
$msg = "Per confermare l'avvenuta registrazione, clicckate il link seguente:
http://localhost/Articoli/autenticazione/1/scripts/confirm.php?id=".$id."
";
return (mail($to, "Conferma la registrazione", $msg, "From: ".$from)) ? REG_SUCCESS : REG_FAILED;
}


invece ora e cosi

function reg_register($data){
//registro l'utente
global $_CONFIG;

$id = reg_get_unique_id();
mysqli_query("
INSERT INTO ".$_CONFIG['table_utenti']."
(nome, cognome, indirizzo, occupazione, username, password, temp, regdate, uid)
VALUES
('".$data['nome']."','".$data['cognome']."','".$data['indirizzo']."',
'".$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'),
'1', '".time()."','".$id."')");

//Decommentate la riga seguente per testare lo script in locale
echo "<a href=\"http://localhost:8888/acquisto/registrazione/confirm.php?id=".$id."\">Conferma</a>";
if(mysqli_insert_id()){
return true REG_SUCCESS;
}else return REG_FAILED;
}

Aspetto risposta?