<?php include_once dirname(__FILE__) . '/ressources/class.templates.inc'; include_once dirname(__FILE__) . '/ressources/class.ldap.inc'; if (posix_getuid() != 0) { die("Cannot be used in web server mode\n\n"); } include_once dirname(__FILE__) . '/framework/class.unix.inc'; include_once dirname(__FILE__) . '/framework/frame.class.inc'; if (!Build_pid_func(__FILE__, "MAIN")) { writelogs(basename(__FILE__) . ":Already executed.. aborting the process", basename(__FILE__), __FILE__, __LINE__); die; } $ldap = new clladp(); $hash = $ldap->hash_get_ou(true); CleanTable(); while (list($num, $ligne) = each($hash)) { GeneratStats($num); } function CleanTable() { $q = new mysql(); $sql = "UPDATE smtp_logs SET bounce_error = 'Sended' WHERE bounce_error LIKE '250%'"; $q->QUERY_SQL($sql, "artica_events"); $sql = "UPDATE smtp_logs SET bounce_error = 'Sended' WHERE bounce_error LIKE 'delivered via%'"; $q->QUERY_SQL($sql, "artica_events"); $sql = "UPDATE smtp_logs SET bounce_error = 'Error' WHERE bounce_error LIKE '4.5.0 Error%'"; $q->QUERY_SQL($sql, "artica_events"); $sql = "UPDATE smtp_logs SET bounce_error = 'hostname not found' WHERE bounce_error LIKE '%cannot find your hostname%'"; $q->QUERY_SQL($sql, "artica_events"); $sql = "UPDATE smtp_logs SET bounce_error = 'DNS Error' WHERE bounce_error LIKE '%Name service error%'";
function compress_tables() { $CurrentTable = "bandwidthd_" . strtotime(date("Y-m-d 00:00:00")); $q = new mysql_squid_builder(); $LIST_TABLES_DAYS = LIST_TABLES_DAYS(); while (list($tablename, $fileSource) = each($LIST_TABLES_DAYS)) { if ($tablename == $CurrentTable) { continue; } CleanTable($tablename); } }
function startSession($SESSNAME, $login, $database = LOCATION) { global $dbh; // le lien MySQL global $stylesheet; /* pour qu'à l'ouverture de la session le user récupère de suite son style */ global $PMBuserid, $PMBusername, $PMBgrp_num; global $checkuser_type_erreur; global $PMBusernom; global $PMBuserprenom; global $PMBuseremail; global $PMBdatabase; if (!$PMBdatabase) { $PMBdatabase = $database; } // nettoyage des sessions 'oubliées' CleanTable(); // génération d'un identificateur unique // initialisation du générateur de nombres aléatoires mt_srand((double) microtime() * 1000000); // nombre aléatoire entre 1111111111 et 9999999999 $SESSID = mt_rand(1111111111, 9999999999.0); // début session (date UNIX) $SESSstart = time(); // adresse IP du client $IP = $_SERVER['REMOTE_ADDR']; $query = "SELECT rights, user_lang FROM users WHERE username='******'"; $result = mysql_query($query, $dbh); $ff = mysql_fetch_object($result); $flag = $ff->rights; // inscription de la session dans la table $query = "INSERT INTO sessions (SESSID, login, IP, SESSstart, LastOn, SESSNAME) VALUES("; $query .= "'{$SESSID}'"; $query .= ", '{$login}'"; $query .= ", '{$IP}'"; $query .= ", '{$SESSstart}'"; $query .= ", '{$SESSstart}'"; $query .= ", '{$SESSNAME}' )"; $result = mysql_query($query, $dbh); if (!$result) { $checkuser_type_erreur = CHECK_USER_PB_OUVERTURE_SESSION; return CHECK_USER_PB_OUVERTURE_SESSION; } // cookie pour le login de l'utilisateur setcookie($SESSNAME . "-LOGIN", $login, 0); // cookie pour le nom de la session setcookie($SESSNAME . "-SESSNAME", $SESSNAME, 0); // cookie pour l'ID de session setcookie($SESSNAME . "-SESSID", $SESSID, 0); // cookie pour la base de donnée setcookie($SESSNAME . "-DATABASE", $PMBdatabase, 0); // mise à disposition des variables de la session define('SESSlogin', $login); define('SESSname', $SESSNAME); define('SESSid', $SESSID); define('SESSstart', $SESSstart); define('SESSlang', $ff->user_lang); define('SESSrights', $flag); /* param par défaut */ $requete_param = "SELECT * FROM users WHERE username='******' LIMIT 1 "; $res_param = mysql_query($requete_param, $dbh); $field_values = mysql_fetch_row($res_param); $i = 0; while ($i < mysql_num_fields($res_param)) { $field = mysql_field_name($res_param, $i); $field_deb = substr($field, 0, 6); switch ($field_deb) { case "deflt_": global ${$field}; ${$field} = $field_values[$i]; break; case "deflt2": global ${$field}; ${$field} = $field_values[$i]; break; case "param_": global ${$field}; ${$field} = $field_values[$i]; break; case "value_": global ${$field}; ${$field} = $field_values[$i]; break; case "xmlta_": global ${$field}; ${$field} = $field_values[$i]; break; case "deflt3": global ${$field}; ${$field} = $field_values[$i]; break; default: break; } $i++; } $requete_nom = "SELECT nom, prenom, user_email, userid, username, grp_num FROM users WHERE username='******' "; $res_nom = mysql_query($requete_nom, $dbh); $param_nom = mysql_fetch_object($res_nom); $PMBusernom = $param_nom->nom; $PMBuserprenom = $param_nom->prenom; $PMBgrp_num = $param_nom->grp_num; $PMBuseremail = $param_nom->user_email; // pour que l'id user soit dispo partout define('SESSuserid', $param_nom->userid); $PMBuserid = $param_nom->userid; $PMBusername = $param_nom->username; /* on va chercher la feuille de style du user */ $stylesheet = $deflt_styles; //Ouverture de la session php header("Expires: Sat, 01 Jan 2000 00:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: post-check=0, pre-check=0", false); session_cache_limiter('must-revalidate'); session_name("pmb" . SESSid); session_start(); //Récupération de l'historique $query = "select session from admin_session where userid=" . $PMBuserid; $resultat = mysql_query($query); if ($resultat) { if (mysql_num_rows($resultat)) { $_SESSION["session_history"] = @unserialize(@mysql_result($resultat, 0, 0)); } } return CHECK_USER_SESSION_OK; }