<?php
// Um simples exemplo:
// echo $sl->getSessionsCount()." sess�es existentes<br>";
// foreach( $sl->getSessions() as $sessName => $sessData )
// {
//    echo "<hr>Sess�o ".$sessName." :<br>";
//    echo " Raw = ".$sessData["raw"]."<br>";
//    echo " Criada em = ".date( "d/m/Y H:i:s",$sessData["creation"])."<br>";
//    echo " Modificada em = ".date( "d/m/Y H:i:s",$sessData["modification"])."<br>";
//    echo " Idade = ".round($sessData["age"]/3600/24,1)." days<br>";
// }

	class sessionLister
	{
		var $diffSess;
		
		function sessionLister() 
   		{
   		}
   		
   		function getSessionsCount()
   		{
   			if (!$this->diffSess)
   				$this->readSessions();
   			return sizeof($this->diffSess);
   		}
   		
   		function getSessions()
   		{
   			if (!$this->diffSess)
   				$this->readSessions();
   			return $this->diffSess;
   		}   		
   		
   		//------------------ PRIVATE ------------------
   		function readSessions()
   		{
			$sessPath = get_cfg_var("session.save_path")."\\";
			$diffSess = array();
			
			$dh = @opendir($sessPath);
			while(($file = @readdir($dh)) !==false )
			{
				if($file != "." && $file != "..")
				{
					$fullpath = $sessPath.$file; 
					if(!@is_dir($fullpath))
					{
						// "sess_7480686aac30b0a15f5bcb78df2a3918"
						$fA = explode("_", $file);
						// array("sess", "7480686aac30b0a15f5bcb78df2a3918")
						$sessValues = file_get_contents ( $fullpath );	// get raw session data
						// this raw data looks like serialize() result, but is is 
                                    // not extactly this, so if you can process it... 
                                    //le me know
						$this->diffSess[$fA[1]]["raw"] = $sessValues;
						$this->diffSess[$fA[1]]["age"] = time()-filectime( $fullpath );
						$this->diffSess[$fA[1]]["creation"] = filectime( $fullpath );
						$this->diffSess[$fA[1]]["modification"] = filemtime( $fullpath );
					}
				}
			}
			@closedir($dh);
   		}
	}
?>