Ciao ragazzi sto creando una classe che mi serve per gestire la login con ricorda per un sito che sto facendo.

Purtroppo non funziona. Non dà errori, ma 1 se apro un'altra scheda senza fare logout non sembra leggere la sessione, 2 non si ricorda della login col cookie. Posto il codice della classe magari potete aiutarmi a correggerla (e ovviamente se avete migliorie da proporre sono tutto orecchie):

Codice PHP:
class User
{
//gestore db
private $mMysqli;
private 
$user_id=0;
public 
$loggato=false;
private 
$magicWord="wll";
//costruttore
function __construct(){
//connessione al db
$this->mMysqli = new mysqli(DB_HOSTDB_USERDB_PASSWORDDB_DATABASE);
$this->checkRicorda();
$this->checkLoggato();
}
//fine __construct

//distruttore, chiude connessioen al db in caso ci dimenticassimo
function __destruct(){
$this->mMysqli->close();
}
//fine __destruct

//funzione di controllo della login
function doLogin($username$password$remember) {
    
//per sicurezza DB eseguiamo escape di user e pass
    
$username $this->exeEscape($username);
    
$password $this->exeEscape(md5($password));
    
//eseguiamo la query per vedere se user e pass sono corretti
    
$sql "SELECT * FROM `user` WHERE `username`='".$username."' AND `password`='".$password."'";
    
$result $this->mMysqli->query($sql);
    if(
is_object($result)){
        
$this->setSession($result->fetch_assoc(), $remember);
        
//return true;
    
}/*else{
        return false;
    }*/
}

//funzione che esegue gli escape di mysql
function exeEscape($string){
    
$string=$this->mMysqli->real_escape_string($string);
    return 
$string;
    }
 
//funzione per settare la login
function setSession($values$remember){
    
$this->user_id $values['user_id'];
    
$cookie=$values['password'].$this->magicWord;
    
$_SESSION['uid'] = $this->user_id;
    
$_SESSION['username'] = $values['username'];
    
$_SESSION['cookie'] = md5($cookie);
    
$this->loggato=true;
    if(
$remember){
        
$this->setCookie($cookie);
    }
}

//funzione per l'aggiornamento del cookie
function setCookie($cookie){
    
$cookie=$_SESSION['username'].",,,,".$cookie;
    
setcookie('wll'$cookietime() + 31104000);
}

//controlliamo la login
function checkLoggato(){
    if(isset(
$_SESSION['uid'])){
        
$tmpid=$_SESSION['uid'];
        
$tmpuser=$_SESSION['username'];
        
$tmpcookie=$_SESSION['cookie'];
    
        
$sql="SELECT * FROM `user` WHERE `username`='".$tmpuser."' AND `user_id`=".$tmpid." AND md5( CONCAT( `password`,'".$this->magicWord."' ) ) = '".$tmpcookie."'";
        
$result $this->mMysqli->query($sql);
    
        if(
is_object($result)){
            
$this->user_id=$tmpid;
            
$this->loggato=true;
        }
    }
}
//controlliamo se doveva essere ricordato
function checkRicorda(){
    
//controlliamo se esiste il cookie
    
if(isset($_COOKIE['wll'])){
        list(
$username$cookie) = explode(",,,,",$_COOKIE['wll']);
        if(!
$username or !$cookie) return;
    
        
$username $this->exeEscape($username);
        
$cookie $this->exeEscape($cookie);
        
$sql "SELECT * FROM `user` WHERE `username`='".$username."' AND md5( CONCAT( `password`,'".$this->magicWord."' ) ) = '".$cookie."'";
        
$result $this->mMysqli->query($sql);
        if(
is_object($result)){
            
$this->setSession($result->fetch_assoc(), true);
        }else{
            
$this->logout();
        }
    }
}

//eseguiamo il logout
function logout(){
    
session_destroy();
    
setcookie('wll''');
    }