Bonjour,
Dans le cadre d'une application en intranet pour un call center, les employés de celui-ci travaillent sur des campagnes (série de cibles à appeler).
Lors du traitement de ces campagnes par les employés, les appels sont effectués en automatique et les données de la cible appelée sont affichées. Pour une campagne donnée, la cible peut être appelée plusieurs fois jusqu'au moment où le suivi de celle-ci pour cette campagne est clôturé.
Afin d'éviter que deux agents ne travaillent sur le même suivi, l'enregistrement (dans la base de données) du suivi en cours de traitement est marqué comme étant occupé.
Pour une persistance de l'objet suivi d'un script à l'autre, il est passé à la variable de session ($_SESSION). Apparemment, j'aurais un souci quant à la différenciation de la variable $_SESSION qu'il devrait y avoir entre deux utilisateurs différents car il arrive que le même suivi soit chargé en même temps par deux utilisateurs différents. Lors de mes tests, j'ai apperçu que le suivi est bien mis en occupé lors de son chargement par un premier utilisateur, mais que celui-ci est remis en non occupé lors du travail sur la même campagne par un autre utilisateur alors que le premier utilisateur travaille toujours sur le suivi en question.
Voici mes différentes codes :
- dans ma classe de génération des interfaces (pour la création du menu) :
- ma fonction Ajax :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ... if($objUtilisateur->getGroupe() == 2) { $tabFichiers = array("accueil.inc", "listeCampagnes.inc", "enregUtilisateur.inc", "rechUtilisateur.inc", "enregCible.inc", "rechCible.inc", "creatForm/page2.inc", "modifCampagne.inc", "listeRapports.inc", "paramGeneraux.inc", "parametres.inc", "changePassword.inc", "sauvegarde.inc"); $tabTitres = array ("Accueil", "Liste des campagnes", "Enregistrer un utilisateur", "Modifier données utilisateur", "Enregistrer client", "Modifier client", "Créer campagne", "Modifier campagne", "Rapports", "Paramètres généraux", "Structure xls", "Modifier mot de passe", "Sauvegarde"); $menu = array("Accueil", "Campagnes", "Enregistrer un utilisateur", "Modifier utilisateur", "Enregistrer client", "Modifier client", "Créer campagne", "Modifier campagne", "Rapports", "Paramètres généraux", "Structure xls", "Modifier mot de passe", "Sauvegarde"); } else { $tabFichiers = array("accueil.inc", "listeCampagnes.inc", "enregCible.inc", "listeRapports.inc", "changePassword.inc"); $tabTitres = array ("Accueil", "Liste des campagnes", "Enregistrer client", "Rapports", "Modifier mot de passe"); $menu = array("Accueil", "Campagnes", "Enregistrer client", "Rapports", "Modifier mot de passe"); } ... if($menu[$cpt] != 'Créer campagne' || ($menu[$cpt] == 'Créer campagne' && $paramXls)) { echo " <a href=\"javascript:detruireSession('" . $debLien . $lienFichier; echo $tabFichiers[$cpt] . $lienTitre . $tabTitres[$cpt] . "')\">" . $menu[$cpt] . "</a> </td> </tr>"; }
- mon script Php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function detruireSession(url) { xhrDetruireSession=getXhr(); xhrDetruireSession.onreadystatechange = function() { if(xhrDetruireSession.readyState == 4 && xhrDetruireSession.status == 200) window.location.replace(url); } xhrDetruireSession.open("POST",'../transferts/detruireSession.php',true); xhrDetruireSession.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhrDetruireSession.send("url=" + url); }
Se pourrait-il que la variable $_SESSION du second utilisateur soit identique à celle du premier?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php include_once("../fichiersInclusion/classes.php"); @session_start(); if(!empty($_SESSION['suivi'])) { if(get_magic_quotes_gpc()) //test si les magic_quotes sont activées $objSuivi = unserialize(stripslashes($_SESSION['suivi'])); else $objSuivi = unserialize($_SESSION['suivi']); if($objSuivi->getOccupe() == 1) $objSuivi->setOccupe(0); // Pour libérer le suivi } session_destroy(); ?>
Merci d'avance pour vos réponses
Partager