Bonsoir la cie,

Cela fait pas mal de temps que je ne suis plus venu demander de l'aide

Je refais une nouvelle interface de gestion du club afin de la moderniser et introduire de nouvelles fonctionnalités.
Une nouvelle fonctionnalité est un système d'alertes à plusieurs couleurs issu d'ici : https://www.w3schools.com/howto/howto_js_alert.asp ... cela fonctionne très bien, jusqu'au moment où je dois supprimer les alertes récoltées (mises en session) pour afficher une alerte prioritaire.
J'utilise des alertes de couleur : vert, rouge, orange, bleu et couleur du club.

Commençons par la création d'une alerte (mineure) par la lecture des données du membre, dont le principe reste le même partout : le round car la donnée BDD est en 4 chiffre, permet de supprimer les 0 non significatifs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$m_array['membre']['abonnement']=$in['p_abonnement'];
if ($m_array['membre']['abonnement']<=4 && $m_array['membre']['abonnement']!=0) {   // ----- Alerte
   $array_gestion_alerte['bleu']['type']='alerte bleu';
   $array_gestion_alerte['bleu']['texte']=$array_gestion_alerte['bleu']['texte'].'<p><strong>Abonnement</strong> : Le nombre d\'abonnement arrive à sa fin -> '.round($m_array['membre']['abonnement']).'</p>';
   $_SESSION['s_gestion_alerte']=$array_gestion_alerte;
   unset($array_gestion_alerte);
}
Ensuite, la suppression de la session pour une alerte prioritaire :
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
// ---------- Gestion des alertes PRIORITAIRES
if ($m_array['options']['exclu']=='oui') {
   unset($_SESSION['s_gestion_alerte']);   // ----- Suppression des alertes précédentes
   $array_gestion_alerte['alerte']['type']='alerte';
   $array_gestion_alerte['alerte']['texte']='<p><strong>ATTENTION</strong> : Ce membre a été exclu du club !</p>';
   $_SESSION['s_gestion_alerte']=$array_gestion_alerte;
   unset($array_gestion_alerte);
 }
 else if ($m_array['options']['demission']=='oui') {
   unset($_SESSION['s_gestion_alerte']);   // ----- Suppression des alertes précédentes
   $array_gestion_alerte['orange']['type']='alerte orange';
   $array_gestion_alerte['orange']['texte']='<p><strong>ATTENTION</strong> : Ce membre a démissionné du club !</p>';
   $_SESSION['s_gestion_alerte']=$array_gestion_alerte;
   unset($array_gestion_alerte);
 }
else if ($m_array['rgpd']['cst']=='non') {
   $array_gestion_alerte['alerte']['type']='alerte';
   $array_gestion_alerte['alerte']['texte']=$array_gestion_alerte['alerte']['texte'].'<p><strong>Covid Safe Ticket</strong> : Le membre n\'a pas encore présenté son CST !</p>';
   $_SESSION['s_gestion_alerte']=$array_gestion_alerte;
   unset($array_gestion_alerte);
 }
Et enfin l'affichage des alertes :
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
if (isset($_SESSION['s_gestion_alerte'])) { $array_gestion_alerte=$_SESSION['s_gestion_alerte']; }
print "<div class=\"div_alerte\">";
	if (isset($array_gestion_alerte)) {
		foreach ($array_gestion_alerte AS $boucle1) {
			$alerte_type=$boucle1['type'];
			$alerte_texte=$boucle1['texte'];
 
			print "<div class=\"$alerte_type\">";
				print "<span class=\"closebtn\">&times;</span>"; 
				print "$alerte_texte";
			print "</div>";
		}
		unset($array_gestion_alerte);
	}
	else { print"&nbsp;"; }
print "</div>";
Mon problème est que le code suivant n'efface pas la session : unset($_SESSION['s_gestion_alerte']);
Cela se passe aussi bien en local que sur l'hébergement

Est-ce du au fait que la session est un array ?
Une idée de la cause ?

Voici un exemple de session pour 2 alertes rouges ('alerte') et 1 orange ('orange') :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
  's_gestion_alerte' => 
    array (size=2)
      'alerte' => 
        array (size=2)
          'type' => string 'alerte' (length=6)
          'texte' => string '<p><strong>Cotisation</strong> : La date est dépassée</p><p><strong>RC Familiale</strong> : La date est dépassée</p><p><strong>Covid Safe Ticket</strong> : Le membre n'a pas encore présenté son CST !</p>' (length=209)
      'orange' => 
        array (size=2)
          'type' => string 'alerte orange' (length=13)
          'texte' => string '<p><strong>ATTENTION</strong> : Ce membre a démissionné du club !</p>' (length=71)
Seule l'alerte orange ne devrait s'afficher car prioritaire : membre démissionaire.

NB : le $m_array récolte les informations pour l'affichage d'informations rapides ou le formulaire du membre -> le $m_array sera alors plus complet.

Si quelqu'un a une idée

@+
ddaweb

Modification :
Je devrais arriver à ceci, c'est une version que j'ai abandonnée car trop compliquée à gérer :

Nom : interface_club.png
Affichages : 178
Taille : 89,8 Ko