Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202

    Active Record entity Utente

    Ciao a tutti,

    Ho scritto questa classe grazie alle conoscenze acquisite fino ad ora, un po con il vostro aiuto e a seconda dei consigli trovati in rete....

    posto la classe e vi dico le mie perplessità :

    Codice PHP:
    <?php

    class utente{   
        private 
    $idutente;   
        private 
    $ut_idsession;
        private 
    $user;   
        private 
    $password;
        private 
    $flagamm;
        private 
    $scadpsw;
        private 
    $blocco;
        private 
    $db;
        
    /*
        public function __construct($idutente = null, $user = null){        
            $this->firstname = $idutente;        
            $this->lastname = $user;   
        }      
        */
        
    public function setConnection($db){        
            
    $this->db $db;   
        }      
        
        public function 
    load($idutente){        
        
            
    $rk $this->db->fetch("SELECT * FROM utenti WHERE idutente = :idutente",array('idutente' => $idutente ));        
            
            
    $this->idutente $rk['idutente'];        
            
    $this->ut_idsession $rk['ut_idsession'];         
            
    $this->user $rk['user'];        
            
    $this->password $rk['password'];   
            
    $this->flagamm $rk['flagamm']; 
            
    $this->scadpsw $rk['scadpsw']; 
            
    $this->blocco $rk['blocco']; 
        }      
        
        public function 
    getIdutente(){        
            return 
    $this->idutente;   
        }  
        
        public function 
    getUser(){        
            return 
    $this->user;   
        }      
        public function 
    getPassword(){        
            return 
    $this->getPassword;
        }   
        
        public function 
    CheckLogin($user,$password){
            
    $rk=$this->db->fetch("SELECT idutente FROM utenti WHERE user = :user AND password = :password",array('user' => $user'password' =>$password));
            if(
    $rk['idutente']!=false){
                
    $this->load($rk['idutente']);
                
                
    //CONTROLLO BLOCCO UTENTE
                
    if($this->blocco == "s")
                    throw new 
    Exception("Utente bloccato.<br />Contattare il supporto tecnico.");   
                    
                
    //APRO SESSIONE
                
    session_start();
                
    //old version... da rimuovere
                
    $_SESSION['idutente']=$this->idutente;
                
    $_SESSION['utente']=$this->user;
                
    $_SESSION['flag']=$this->flagamm;
                
    //old versione... da rimuovere     
                
                
    $this->CreateSession();
                
    $this->Update();    

                if(
    $this->scadpsw <= date("Y-m-d"))
                    
    header('Location: login.php?funz=ChangePassword');
                else
                       
    header('Location: index.php');

            }else{
                throw new 
    Exception("Utente o Password non corretti");
            }
        }
        
        public function 
    CreateSession(){
            
    $caratteri    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            
    $len           strlen($caratteri);
            
    $idsession   '';
            
    mt_srand(10000000*(double)microtime());
            for (
    $i 0$i 20$i++)
                   
    $idsession .= $caratteri[mt_rand(0,$len 1)];

              
    $_SESSION['idsession']=$idsession;
              
    $this->ut_idsession $idsession;
        }

        public function 
    Update(){
            
    $sql ="UPDATE utenti SET ";
                
    $sql.="idutente = :idutente,";
                
    $sql.="ut_idsession = :ut_idsession,";
                
    $sql.="user = :user,";
                
    $sql.="password = :password,";
                
    $sql.="flagamm = :flagamm,";
                
    $sql.="blocco = :blocco ";
            
    $sql.="WHERE idutente = :id";
            
            
    $parameter = array('idutente' => $this->idutente
                               
    'ut_idsession' => $this->ut_idsession,
                               
    'user' => $this->user,
                               
    'password' => $this->password,
                               
    'flagamm' => $this->flagamm,
                               
    'blocco' => $this->blocco,
                               
    'id' => $this->idutente);
            return 
    $this->db->executeUpdate($sql,$parameter);
        }


        
    //add set methods and others (like save/delete methods)}     
    }
    ?>
    il tutto funziona correttamente, mancano ancora tutti i getter e setter e le funzioni come insert e delete....
    Le mie perplessità sono due, una proprio strutturale in particolare sull'update (e anche nel futuro insert).
    L'ho pensato in modo che il metodo detenga l'esatta sql che aggiorna l'intero record, prendendo le proprietà dalla classe stessa.
    Questo mi vincola, nel caso Update a fare, il load dell'oggetto, cambiare le proprietà da modificare e poi lanciare l'update....
    Questa cosa è corretta oppure no?

    La seconda cosa è più pratica, in sostanza ho pensato di generare un stringa casuale da inserire all'interno della variabile di sessione a parità di utente, quando questo viene autenticato...
    Nelle pagine in cui andrò a fare il controllo pensavo di recuperare idsession, tramite questo parametro recuperare l'utente e tutte le info accessorie (tipo i permessi legati ad ogni entità)....
    E' corretta questa cosa o avete suggerimenti?

    Grazie a tutti

    Ciao
    Paolo
    Che mestiere difficile.....essere da soli ancora di più

  2. #2
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Uppino?... giusto per sapere se è tutto sbagliato o c'è qualcosa di corretto
    Che mestiere difficile.....essere da soli ancora di più

  3. #3
    Quote Originariamente inviata da Fractals87 Visualizza il messaggio
    Questo mi vincola, nel caso Update a fare, il load dell'oggetto, cambiare le proprietà da modificare e poi lanciare l'update....
    Questa cosa è corretta oppure no?

    Hibernate (un framework ORM Java), ad esempio, funziona allo stesso modo.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Ciao Satifal,
    Ti ringrazio infinitamente della risposta... era proprio quello che volevo sapere...

    Per la sessione invece?
    Secondo te è corretto creare una variabile $_SESSION infilandoci una stringa casuale da poi riportare sul record utente?

    Grazie mille.
    Che mestiere difficile.....essere da soli ancora di più

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.