1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| require_once("../functions.inc.php");
//Début de l'inclusion de toutes les classes nécessaires avant le début de la session
require_once("../config.inc.php");
$classes_dir = getAbsolutePath()."classes";
if(is_dir($classes_dir))
{
$dh= opendir($classes_dir);
while ($fichier = readdir ($dh))
{
if ($fichier != "." && $fichier != ".." && !is_dir($fichier) && stripos($fichier, ".class.php") > 0)
{
require_once(getAbsolutePath()."classes/".$fichier);
}
}
closedir ($dh);
}
else
{
}
//fin de l'inclusion des fichiers .class.php
//Récupération des paramètres de la requête utilisateur
$object = $_POST["object"];
$id = $_POST["id"];
$invoke = $_POST["invoke"];
$params = $_POST["params"];
$session_id = $_POST["session_id"];
//début du traitement du script avec gestion du lock de session
if($session_id != "")
{
dbConnect();
$query = "select session_id, session_status from sessions where session_id = '".$session_id."'";
$resId = runQuery($query);
$resCount = resCount($resId);
if($resCount > 0)
{
$session = moveNext($resId);
if($session["session_status"] == "locked")
{
$query = "select session_id, session_status from sessions where session_id = '".$session_id."'";
while($resCount > 0 && $session["session_status"] == "locked")
{
usleep(500);
$resId = runQuery($query);
$resCount = resCount($resId);
if($resCount > 0)
{
$session = moveNext($resId);
}
}
}
$query = "update sessions set session_status='locked' where session_id='".$session_id."'";
}
else
{
$query = "insert into sessions (session_id, session_status) values ('".$session_id."', 'locked')";
}
runQuery($query);
session_start();
$internetSite = $_SESSION["site"];
echo $internetSite->updateSite($object, $id, $invoke, $params);
$_SESSION["site"] = $internetSite;
session_write_close();
$query = "update sessions set session_status='unlocked' where session_id='".$session_id."'";
runQuery($query);
} |
Partager