= 0)) {
$tr = (SESSION_LAST - $dateDiff) - 30 ;
$reste = round($tr/60);
if ($reste > 1) {
$GLOBALS["finSession"] = $reste . " minutes";
} else if ($reste == 1) {
$GLOBALS["finSession"] = $reste . " minute";
} else if ($reste < 1) {
$GLOBALS["finSession"] = (SESSION_LAST - $dateDiff) . " secondes";
}
$checkToken["token"] = 1;
$checkToken["drt"] = $tab[1];
} else {
$checkToken["token"] = 0;
$req = "update cnx set stt='0' where tkn='".$tkn."' ";
$res = mysql_query($req, $GLOBALS["cnx"]);
}
//$checkToken["token"] = 1;
//$checkToken["drt"] = $tab[1];
} else if ($num==0) {
$checkToken["token"] = -1;
$checkToken["drt"] = 0;
} else {
$checkToken["token"] = -2;
$checkToken["drt"] = 0;
}
return $checkToken;
}
//########################################################################################################################################
// getUserInfos : Récupère les informations personnelles de l'utilisateur
function getUserInfos($tkn) {
$req="select usr.id_usr, usr.firstname, usr.name as usrName, usr.dev, drt.label as drtLabel, ent.id_ent, ent.name as entName from usr,cnx,drt,ent where cnx.tkn='$tkn' and cnx.id_usr=usr.id_usr and drt.drt=usr.drt and ent.id_ent=usr.id_ent";
$res = mysql_query($req, $GLOBALS["cnx"]);
$num = mysql_num_rows($res);
$tab = mysql_fetch_object($res);
if ($num==1) {
$getUserInfos["firstName"] = $tab->firstname;
$getUserInfos["name"] = $tab->usrName;
$getUserInfos["drtLabel"] = $tab->drtLabel;
$getUserInfos["idUsr"] = $tab->id_usr;
$getUserInfos["idEnt"] = $tab->id_ent;
$getUserInfos["ent"] = $tab->entName;
$getUserInfos["dev"] = $tab->dev;
} else {
$getUserInfos["firstName"] = "";
$getUserInfos["name"] = "";
$getUserInfos["drtLabel"] = "";
$getUserInfos["idUsr"] = "";
$getUserInfos["idEnt"] = "";
$getUserInfos["ent"] = "";
$getUserInfos["dev"] = 0;
}
return $getUserInfos;
}
//########################################################################################################################################
// checkAuth : Vérifie l'authentification et renvoie un tableau contenant les infos de l'utilisateur
function checkAuth() {
if (isset($_REQUEST["tkn"])) {
$tokenInfos = checkToken($_REQUEST["tkn"]);
settype($tokenInfos["drt"], "integer");
switch ($tokenInfos["token"]) {
case 0:
// Session expiree
$infos["validity"] = 0;
$infos["token"] = "";
$infos["idUsr"] = "";
$infos["name"] = "";
$infos["firstName"] = "";
$infos["drt"] = 0;
$infos["drtLabel"] = "";
$infos["idEnt"] = "";
$infos["ent"] = "";
$infos["dev"] = "";
break;
case 1:
// le token est valide
$userInfos = getUserInfos($_REQUEST["tkn"]);
$infos["validity"] = 1;
$infos["token"] = $_REQUEST["tkn"];
$infos["idUsr"] = $userInfos["idUsr"];
$infos["name"] = $userInfos["name"];
$infos["firstName"] = $userInfos["firstName"];
$infos["drt"] = $tokenInfos["drt"];
$infos["drtLabel"] = $userInfos["drtLabel"];
$infos["idEnt"] = $userInfos["idEnt"];
$infos["ent"] = $userInfos["ent"];
$infos["dev"] = $userInfos["dev"];
break;
default:
// le token n'est plus valide
$infos["validity"] = $tokenInfos["token"];
$infos["token"] = "";
$infos["idUsr"] = "";
$infos["name"] = "";
$infos["firstName"] = "";
$infos["drt"] = $tokenInfos["drt"];
$infos["drtLabel"] = "";
$infos["idEnt"] = "";
$infos["ent"] = "";
$infos["dev"] = 0;
break;
}
} else if (isset($_POST["login"]) && isset($_POST["pwd"])) {
$l = $_POST["login"];
$p = $_POST["pwd"];
$req = "SELECT usr.id_usr, usr.drt, usr.name as usrName, usr.firstname, usr.dev, usr.dateexp, drt.label as drtLabel, ca_agences.id_agence, ca_agences.nom_agence as entName FROM usr, drt, ca_agences WHERE (usr.login='$l' AND usr.pwd='$p' AND usr.del='0' AND drt.drt=usr.drt AND ca_agences.id_agence=usr.id_ent AND usr.dateexp > '".datetime(0)."' )";
//echo "
Q = ".$req;
$res = mysql_query($req, $GLOBALS["cnx"]);
$num = mysql_num_rows($res);
if ($num == 1) {
// Authentification réussie
$tab = mysql_fetch_object($res);
$d = dateTime(0);
$token = trace($tab->id_usr, $tab->usrName, $d, $tab->drt);
$infos["validity"] = 1;
$infos["token"] = $token;
settype($tab->drt, "integer");
$infos["idUsr"] = $tab->id_usr;
$infos["name"] = $tab->usrName;
$infos["firstName"] = $tab->firstname;
$infos["drt"] = $tab->drt;
$infos["drtLabel"] = $tab->drtLabel;
$infos["idEnt"] = $tab->id_agence;
$infos["ent"] = $tab->entName;
$infos["dev"] = $tab->dev;
} else {
// Authentification échouée
$tab = mysql_fetch_object($res);
if ($tab->dateexp < datetime(0) ) {
$infos["validity"] = -5;
} else {
$infos["validity"] = -3;
}
$infos["token"] = "";
$infos["idUsr"] = "";
$infos["name"] = "";
$infos["firstName"] = "";
$infos["drt"] = 0;
$infos["drtLabel"] = "";
$infos["idEnt"] = "";
$infos["ent"] = "";
$infos["dev"] = 0;
}
} else {
// Non authentifié
$infos["validity"] = -4;
$infos["token"] = "";
$infos["idUsr"] = "";
$infos["name"] = "";
$infos["firstName"] = "";
$infos["drt"] = 0;
$infos["drtLabel"] = "";
$infos["idEnt"] = "";
$infos["ent"] = "";
$infos["dev"] = 0;
}
if (DEBUG == true) {
echo "Droit de l'utilisateur " . $infos["firstName"] ." ". $infos["name"] ." (id_usr=".$infos["idUsr"].") = " . $infos["drtLabel"] . "
";
echo "Token status = ".$infos["validity"]."
";
}
// Protection des apostrophes dans les valeurs de variables transmises
//echo "Replace !";
/*
$m="'";
$r="\'";
foreach ($_POST as $key => $val) {
$str = $val;
echo "".$str;
$_POST[$key]= ereg_replace($m, $r, $str);
}
*/
return $infos;
}
//########################################################################################################################################
// dateTime : Renvoie la date complète sous différents formats
function dateTime($param) {
switch ($param) {
case 0:
$d = date("Y") . "-" . date("m") . "-" . date("d") . " " . date("H") . ":" . date("i") . ":" . date("s");
break;
case 1:
$d = date("d")."/".date("m")."/".date("Y")." ".date("H") . ":" . date("i") . ":" . date("s");
break;
case 2:
$d = date("Y") . date("m") . date("d") . date("H") . date("i") . date("s");
break;
case 3:
$d = date("Y") . date("m") . date("d");
break;
case 4:
$d = date("Y", mktime((date("H")+48),date("i"),date("s"),date("m"),date("d"),date("Y")))."-" .date("m", mktime((date("H")+48),date("i"),date("s"),date("m"),date("d"),date("Y"))) ."-" . date("d", mktime((date("H")+48),date("i"),date("s"),date("m"),date("d"),date("Y"))) ." ". date("H", mktime((date("H")+48),date("i"),date("s"),date("m"),date("d"),date("Y"))) .":". date("i", mktime((date("H")+48),date("i"),date("s"),date("m"),date("d"),date("Y"))) .":". date("s", mktime((date("H")+48),date("i"),date("s"),date("m"),date("d"),date("Y")));
break;
}
return $d;
}
//########################################################################################################################################
// dateTimePlus
function dateTimePlus($param) {
$tb = explode("-", $param);
$a=$tb[0];
$m=$tb[1];
$tb2 = explode(" ", $tb[2]);
$j=$tb2[0];
$tb3 = explode(":", $tb2[1]);
$h=$tb3[0];
$min=$tb3[1];
$s=$tb3[2];
//$d = date("Y", mktime($h, $min, $s, $m, ($j+7), $a))."-".date("m", mktime($h, $min, $s, $m, ($j+7), $a))."-".date("d", mktime($h, $min, $s, $m, ($j+7), $a))." ".date("H", mktime($h, $min, $s, $m, ($j+7), $a)).":".date("i", mktime($h, $min, $s, $m, ($j+7), $a)).":".date("s", mktime($h, $min, $s, $m, ($j+7), $a));
$d = date("Y", mktime($h, $min, $s, $m, ($j+7), $a))."-".date("m", mktime($h, $min, $s, $m, ($j+7), $a))."-".date("d", mktime($h, $min, $s, $m, ($j+7), $a));
return $d;
}
//########################################################################################################################################
// dateTime : Months
function monthText($param, $lng) {
$monthText="";
if ($lng == "FR") {
switch ($param) {
case 1:
$monthText = "janvier";
break;
case 2:
$monthText = "février";
break;
case 3:
$monthText = "mars";
break;
case 4:
$monthText = "avril";
break;
case 5:
$monthText = "mai";
break;
case 6:
$monthText = "juin";
break;
case 7:
$monthText = "juillet";
break;
case 8:
$monthText = "août";
break;
case 9:
$monthText = "septembre";
break;
case 10:
$monthText = "octobre";
break;
case 11:
$monthText = "Novembre";
break;
case 12:
$monthText = "Décembre";
break;
}
} else {
switch ($param) {
case 1:
$monthText = "january";
break;
case 2:
$monthText = "february";
break;
case 3:
$monthText = "march";
break;
case 4:
$monthText = "april";
break;
case 5:
$monthText = "may";
break;
case 6:
$monthText = "june";
break;
case 7:
$monthText = "july";
break;
case 8:
$monthText = "august";
break;
case 9:
$monthText = "september";
break;
case 10:
$monthText = "october";
break;
case 11:
$monthText = "November";
break;
case 12:
$monthText = "Décember";
break;
}
}
return $monthText;
}
//########################################################################################################################################
// trace : Log la connexion de l'utilisateur
function trace($id, $name, $d, $drt) {
$req = "select id_cnx from cnx limit 0,1";
$res = mysql_query($req, $GLOBALS["cnx"]);
$tab = mysql_fetch_row($res);
if ($id < 10) $id = "0".$id;
$token = $id . date("H") . date("Y") . date("i") . date("m") . date("s") . date("d") ;
$req = "insert into cnx values('', '$id', '$name', '$d', '$token', '$drt', '1')";
$res = mysql_query($req, $GLOBALS["cnx"]);
return $token;
}
//########################################################################################################################################
// Vérification du format du nom des éléments uploadés (photos, documents)
function checkElement($e) {
$val = trim($e);
$val = ereg_replace("'", "_", $val);
$val = ereg_replace("°", "_", $val);
$val = ereg_replace("é", "e", $val);
$val = ereg_replace("è", "e", $val);
$val = ereg_replace("à", "a", $val);
$val = ereg_replace("ù", "u", $val);
$val = ereg_replace(" ", "", $val);
return $val;
}
//########################################################################################################################################
// Vérification du format du nom des éléments uploadés (photos, documents)
function checkJSName($e) {
$val = trim($e);
$val = ereg_replace("'", "\'", $val);
return $val;
}
//########################################################################################################################################
// Enleve les CDATA
function cutCDATA($e) {
$val = substr($e, 9, (strlen($e)-12) );
return $val;
}
//########################################################################################################################################
// DisplayUsrInfos
function displayUsrInfos($n, $f, $co, $ca, $m) {
echo "Name | : | ".$f." ".$n." | Company | : | ".$co." | Category | : | ".$ca." |
|  |
|
";
}
//########################################################################################################################################
function makePwd() {
// Ensemble des caractères utilisés pour le créer
$cars="az0erty2ui3op4qs5df6gh7jk8lm9wxcvbn";
// Combien on en a mis au fait ?
$wlong=strlen($cars);
// Au départ, il est vide ce mot de passe ;)
$wpas="";
// Combien on veut de caractères pour ce mot de passe ?
$taille=6;
// On initialise la fonction aléatoire
srand((double)microtime()*1000000);
// On boucle sur le nombre de caractères voulus
for($i=0;$i<$taille;$i++){
// Tirage aléatoire d'une valeur entre 1 et wlong
$wpos=rand(0,$wlong-1);
// On cumule le caractère dans le mot de passe
$wpas=$wpas.substr($cars,$wpos,1);
// On continue avec le caractère suivant à générer
}
// On affiche le mot de passe (on peut le stocker quelque part...)
return $wpas;
}
//########################################################################################################################################
function newDate($d, $j, $m, $a, $f) {
$elts = explode("-", $d );
$jour = $elts[0];
$mois = $elts[1];
$an = $elts[2];
$newDate = mktime(0, 0, 0, ($mois+$m), ($jour+$j), ($an+$a) );
return date($f, $newDate);
}
//########################################################################################################################################
function checkIP() {
$IPTABLE[0] = "80.118.33.228";
$IPTABLE[1] = "83.145.100.34";
$IPTABLE[2] = "195.101.36.35";
$IPTABLE[3] = "193.253.194.213";
$IPTABLE[4] = "217.128.36.44";
$IPTABLE[5] = "77.202.229.62";
$IPTABLE[6] = "82.232.62.191";
$IPTABLE[7] = "82.230.34.183";
$MYIP = $_SERVER['REMOTE_ADDR'];
$IPCHECK = 0;
for ($i=0; $i < count($IPTABLE); $i++) {
if ($MYIP == $IPTABLE[$i]) $IPCHECK = 1;
}
return $IPCHECK;
}
// Variables Globale
/*
foreach ($GLOBALS as $key => $val) {
echo "".$key." = ".$val."";
}
// Variables de la QueryString
foreach ($_REQUEST as $key => $val) {
echo "".$key." = ".$val."";
}
*/
?>