//########################################################################################
// -------------- Summary
// V1.0
// lists all concurrent sessions on a server. Need read access to temps sessions dir.
// V1.1
// as old sessions are sometimes present on the server, the new version returns the creation date
// the last modif date, but also the age of the session. if the session is older than 4 hours for
// example, you can choose to ignore it.
// So you can for example list all users logged within the last 4 hours.
//
// -------------- Author
// Logan Dugenoux - 2003
// logan.dugenoux@netcourrier.com
// http://www.peous.com/logan/
//
// -------------- License
// GPL
//
// -------------- Methods :
// - getSessionsCount()
// - getSessions()
//
// ------------- Example :
// echo $sl->getSessionsCount()." sessions available ";
// foreach( $sl->getSessions() as $sessName => $sessData )
// {
// echo "
Session ".$sessName." : ";
// echo " Rawdata = ".$sessData["raw"]." ";
// echo " creation date = ".date( "d/m/Y H:i:s",$sessData["creation"])." ";
// echo " last modif date = ".date( "d/m/Y H:i:s",$sessData["modification"])." ";
// echo " age = ".round($sessData["age"]/3600/24,1)." days ";
// }
//
// Have fun !!!
//
//########################################################################################
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")."\\";
$sessPath = get_cfg_var("session.save_path") ."/";
$diffSess = array();
$dh = @opendir($sessPath);
while(($file = @readdir($dh)) !==false )
{
if($file != "." && $file != "..")
{
if(substr($file,0,5)=='sess_') {
$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);
}
}
?>
function print_periodo($id,$sitio,$cual){
/*
cual:
0. id
1. ini
2. fin
3. descripcion
4. visible
5. array completo
6. formateado Nov 01 2005 - Nov 01 2006
7. ini formateado Nov 01 2005
8. end formateado Nov 01 2006
*/
$cual=(($cual<0 || $cual>8)?8:$cual);
$id=(int)$id;
if($id){
$SQL="SELECT P.* FROM periodo P,siteperiodo SP WHERE SP.periodo_id=P.id AND SP.sities_id='$sitio' AND P.id='$id' order by P.ini_date";
$ret=mysql_query($SQL);
$row=mysql_fetch_array($ret);
if($cual<=4)
return $row[$cual];
else{
switch($cual){
case 5: return $row; break;
case 6: return date("M d Y",strtotime($row[ini_date]))." - ".date("M d Y",strtotime($row[end_date])); break;
case 7: return date("M d Y",strtotime($row[ini_date])); break;
case 8: return date("M d Y",strtotime($row[end_date])); break;
}
}
}else{
return "";
}
}
function ReturnActualPeriodo()
{
$sql="SELECT P.id FROM periodo P
INNER JOIN siteperiodo ON siteperiodo.periodo_id = P.id AND siteperiodo.sities_id=".$_SESSION['DS_SiteId']." WHERE actual=1 AND P.visible=0 LIMIT 1";
//WHERE now() >= ini_date AND now() <= end_date AND P.visible=0";
$result=mysql_query($sql);
if(mysql_num_rows($result)>0)
while($filas=mysql_fetch_array($result))
$periodo=$filas["id"];
else $periodo=false;
return $periodo;
}//fin de la funcion
function ReturnRegPeriodo()
{
$sql="SELECT P.id FROM periodo P
INNER JOIN siteperiodo ON siteperiodo.periodo_id = P.id AND siteperiodo.sities_id=".$_SESSION['DS_SiteId']." WHERE Reg=1 AND P.visible=0 LIMIT 1";
//WHERE now() >= ini_date AND now() <= end_date AND P.visible=0";
$result=mysql_query($sql);
if(mysql_num_rows($result)>0)
while($filas=mysql_fetch_array($result))
$periodo=$filas["id"];
else $periodo=false;
return $periodo;
}//fin de la funcion
function ReturnPeriodosFuturos()
{
$sql="SELECT P.id FROM periodo P
INNER JOIN siteperiodo ON siteperiodo.periodo_id = P.id AND siteperiodo.sities_id=".$_SESSION['DS_SiteId']."
WHERE now() >= ini_date AND now() <= end_date AND P.visible=0";
$result=mysql_query($sql);
if(mysql_num_rows($result)>0)
while($filas=mysql_fetch_array($result))
$periodo[]=$filas["id"];
else $periodo=false;
return $periodo;
}//fin de la funcion
function ComboPeriodo($default)
{
$sql="SELECT P.* FROM periodo P
INNER JOIN siteperiodo ON P.id = siteperiodo.periodo_id and siteperiodo.sities_id =".$_SESSION['DS_SiteId']."
AND P.visible=0";
echo $sql;
$result=mysql_query($sql);
$select="";
if(mysql_num_rows($result)>0)
{
while($filas=mysql_fetch_array($result))
{
if($filas["id"]==$default)
$select.='';
else
$select.='';
}//fin del while
return $select;
}//fin del if
return $select="No periods found";
}
?>
/**
* @name DelUser()
* Funcion que se encarga de eliminar un usuario de la DB
* teniendo en cuenta si pertenece a mas de un sitio.
* Si pertenece a mas sitios del actual, solo lo elimina
* de la tabla SU, si es el unico sitio lo elimina de Users.
*
* @param int $UID El id del usuario a borrar
* @return int $vre Tipo de accion realizada.
* @author Facundo Mendez
*/
function DelUser($UID){
if(!$UID)
return 0;
else{
$sql="SELECT U.ID,U.Username,S.sities_id,IF(S.sities_id='".$_SESSION['DS_SiteId']."','1','0') AS es FROM Users U,su S WHERE S.user_id=U.ID AND U.ID=$UID";
$ret=mysql_query($sql) or die ("SQL error: $sql");
$num=mysql_num_rows($ret);
$vre=1;
while($row=mysql_fetch_array($ret)){
if($row['es']==1){
$sql1="DELETE FROM su WHERE sities_id='".$_SESSION['DS_SiteId']."' AND user_id='$UID' LIMIT 1";
$ret1=mysql_query($sql1) or die ("SQL error: $sql1");
$vre=2;
if($num==1){
$sql2="DELETE FROM Users WHERE ID='$UID'";
$ret2=mysql_query($sql2) or die ("SQL error: $sql2");
$vre=3;
}
}
}// fin del while
return $vre;
}// fin de si hay uid o no
}// fin de funcion
?>
function DelOrga($OID){
if(!$OID)
return 0;
else{
$sql="SELECT O.ID,O.Name,S.sities_id,IF(S.sities_id='".$_SESSION['DS_SiteId']."','1','0') AS es FROM Orgas O, siteorgas S WHERE S.orgas_id=O.ID AND O.ID=$OID";
$ret=mysql_query($sql) or die ("SQL error: $sql");
$num=mysql_num_rows($ret);
$vre=1;
while($row=mysql_fetch_array($ret)){
if($row['es']==1){
$sql1="DELETE FROM siteorgas WHERE sities_id='".$_SESSION['DS_SiteId']."' AND orgas_id='$OID' LIMIT 1";
$ret1=mysql_query($sql1) or die ("SQL error: $sql1");
$vre=2;
if($num==1){
$sql2="DELETE FROM Orgas WHERE ID='$OID'";
$ret2=mysql_query($sql2) or die ("SQL error: $sql2");
$vre=3;
}
}
}// fin del while
return $vre; // si retorna 3, llamar a system_deaffiliate.php que borra todo lo demas...
}// fin de si hay uid o no
}// fin de funcion
?>
function mantenimiento($IP_array,$activo=0){
if($activo)
if(!in_array($_SERVER['REMOTE_ADDR'],$IP_array)){
echo "
This site is currently down for manteinance.
We apologize for the inconvenience. The site will be up in a few minutes.