Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804

    salvare le sessioni in un database

    salve ragazzi ho un problemone , dovrei riuscire a salvare le sessioni degli user in un databae , cioe l id di sessione il tempo , adesso avrei trovato una classe ma non so come farla funzionare posto la classe :
    Codice PHP:
    class session 
        
    // session-lifetime 
        
    var $lifeTime
        
    // mysql-handle 
        
    var $dbHandle
        function 
    open($savePath$sessName) { 
           
    // get session-lifetime 
           
    $this->lifeTime get_cfg_var("session.gc_maxlifetime"); 
           
    // open database-connection 
           
    $dbHandle = @mysql_connect("localhost","root","maurizio"); 
           
    $dbSel = @mysql_select_db("supp",$dbHandle); 
           
    // return success 
           
    if(!$dbHandle or !$dbSel
               return 
    false
           
    $this->dbHandle $dbHandle
           return 
    true
        } 
        
        function 
    close() { 
            
    $this->gc(ini_get('session.gc_maxlifetime')); 
            
    // close database-connection 
            
    return @mysql_close($this->dbHandle); 
        } 
        function 
    read($sessID) { 
            
    // fetch session-data 
            
    $res mysql_query("SELECT session_data AS d FROM sessions 
                                WHERE session_id = '
    $sessID
                                AND session_expires > "
    .time(),$this->dbHandle); 
            
    // return data or an empty string at failure 
            
    if($row = @mysql_fetch_assoc($res)) 
                return 
    $row['d']; 
            return 
    ""
        } 
        function 
    write($sessID,$sessData) { 
            
    // new session-expire-time 
            
    $newExp time() + $this->lifeTime
            
    // is a session with this id in the database? 
            
    $res mysql_query("SELECT * FROM sessions 
                                WHERE session_id = '
    $sessID'",$this->dbHandle); 
            
    // if yes, 
            
    if(@mysql_num_rows($res)) { 
                
    // ...update session-data 
                
    mysql_query("UPDATE sessions 
                             SET session_expires = '
    $newExp', 
                             session_data = '
    $sessData
                             WHERE session_id = '
    $sessID'",$this->dbHandle); 
                
    // if something happened, return true 
                
    if(mysql_affected_rows($this->dbHandle)) 
                    return 
    true
            } 
            
    // if no session-data was found, 
            
    else { 
                
    // create a new row 
                
    mysql_query("INSERT INTO sessions ( 
                             session_id, 
                             session_expires, 
                             session_data) 
                             VALUES( 
                             '
    $sessID', 
                             '
    $newExp', 
                             '
    $sessData')",$this->dbHandle); 
                
    // if row was created, return true 
                
    if(mysql_affected_rows($this->dbHandle)) 
                    return 
    true
            } 
            
    // an unknown error occured 
            
    return false
        } 
        function 
    destroy($sessID) { 
            
    // delete session-data 
            
    mysql_query("DELETE FROM sessions WHERE session_id = '$sessID'",$this->dbHandle); 
            
    // if session was deleted, return true, 
            
    if(mysql_affected_rows($this->dbHandle)) 
                return 
    true
            
    // ...else return false 
            
    return false
        } 
        function 
    gc($sessMaxLifeTime) { 
            
    // delete old sessions 
            
    @mysql_query("DELETE FROM sessions WHERE session_expires < ".time(),$this->dbHandle); 
            
    // return affected rows 
            
    return @mysql_affected_rows($this->dbHandle); 
        } 
    }
    // imposto la scadenza delle sessioni a 20 minuti
    ini_set('session.gc_maxlifetime',20*60);
    // imposto la probabilità di avvio del garbage collector al 50%
    ini_set('session.gc_probability',50);
    ini_set('session.gc_divisor',100);
    @
    ini_set('session.save_handler''user');
    $session = new session(); 
    session_set_save_handler(array(&$session,"open"), 
                             array(&
    $session,"close"), 
                             array(&
    $session,"read"), 
                             array(&
    $session,"write"), 
                             array(&
    $session,"destroy"), 
                             array(&
    $session,"gc"));
    session_start();
    $_SESSION['user_login'];
    $_SESSION['pass_password'];
    session_id();                         ?> 
    e questo e il controllo che faccio al lgin :

    Codice PHP:
    if(!file_exists("../config/config.php")){
        die(
    "<div>il files config.php non e presente");
      }
    else{
    require_once(
    "../config/config.php");
    }
    require_once(
    "../include/funzion.php");
    session_start();
    $_SESSION['areaprivata_login'];
    $_SESSION['areaprivata_password'];

    if(!isset(
    $_POST['action'])){$action="";}else{$action $_POST['action'];}
    if(!isset(
    $_POST['login'])){$login="";}else{$login trim(addslashes($_POST['login']));}
    if(!isset(
    $_POST['pass'])){$pass="";}else{$pass trim(addslashes($_POST['pass']));}
    if(isset(
    $_POST['action'])=="control_administrator"){
    $pass_cript criptpass($pass);
    $DB = new DB;
    $DB->connect();
    $controllo_Staff mysql_query("SELECT * 
    FROM `staff`
    WHERE `nick` ='
    $login'
    AND `pass` =  '
    $pass_cript'
    AND   `stato` = 1 
    AND   `tipo` = 2
    OR     `tipo` = 3
    OR     `tipo` = 4
    LIMIT 0 , 1"
    );
    if(@
    mysql_num_rows($controllo_Staff)== 1){
    session_start();
    $_SESSION['areaprivata_login']=$login;
    $_SESSION['areaprivata_password']=$pass_cript;
    echo
    "[img]immagini/loading_bar.gif[/img]<meta http-equiv=\"Refresh\" content=\"3; URL=index.php\">Login effettuato correttamente . <a href=index.php>Clicca qui per entrare</a>";
    }else{
     echo 
    "<meta http-equiv=\"Refresh\" content=\"3; URL=index.php\">Login o password incorretti  . Torna all' Home Page<a href=index.php>Premi qui per riprovare</a>";
    }

    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804
    salve ragazzi e importante che trovi questa soluzione , mi date una mano cortesemente grazie
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

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.