Dopo tante prove ho deciso di risolvere in questo modo:
[PHP]class home_class{
private $check;
private $send_mail;
private $len;
private $id;
private $protected_pass;
private $date;
private $row;
function new_user($mail,$user){
global $db_prefix;
$this->check = new check_istance();
$this->check->user($user,1);
$this->check->mail($mail,1);
//Password cryptata in SHA1 dopo MD5
$this->protected_pass=sha1(md5(rand(), true));
$this->protected_pass=substr($this->protected_pass,0,9);
//token.Chiave unica per ogni utente realizzata in md5 random
$this->token = md5(uniqid(rand(), true));
//ID numerico utente utilizzato con crc32 random
$this->id = crc32(md5(uniqid(rand(), true)));//Crea il codice ID
$this->len = strlen($this->id)-1; //Calcola la Lunghezza dell'ID Random -1
$this->id = substr($this->id ,1,$this->len);//conta dal secondo carattere(per evitare il negativo)
//Dati di registrazione
$this->date = date("d/m/Y")." ".date("H:i");//La data della registrazione
$action = mysql_query("INSERT INTO ".$db_prefix."phpnewsletter_users
(user,pass,mail,token,id,nome,cognome,gg,mm,aaaa,info,skin,stato,date,attivo,sito)
VALUES
('$user','$this->protected_pass','$mail','$this->token','$this->id','inattivo','inattivo',NULL,NULL,NULL,'inattivo','inattivo','inattivo','$this->date','inattivo','inattivo')");
if($action)
{[/PHP]
Non era il metodo che volevo utilizzare, ma comunque non fa niente;)