Bonjour,
j'ai un problème avec la version 2.1.16 de spip que je n'avais pas jusqu'a la 2.1.15: le système de création de session part en boucle infinie.
Manifestement, ceci est dù à l'emploi par un de mes plugins du pipeline 'definir_session' pour ajouter des paramètres "maison" aux sessions et à la présence nouvelle d'un appel à :
// purger au passage les vieux fichiers de session
supprimer_sessions(-1);
dans la fonction
function ajouter_session($auteur) {
Voila ce que cela donne :
Fatal error: Maximum function nesting level of '100' reached, aborting! in /var/www/bdd/ecrire/inc/utils.php on line 356
Call Stack
# Time Memory Function Location
1 0.0004 327164 {main}( ) ../index.php:0
2 0.0154 669716 inc_auth_dist( ) ../index.php:40
3 0.0167 674340 auth_init_droits( ) ../auth.php:74
4 0.0168 675236 session_set( ) ../auth.php:225
5 0.0168 677244 ajouter_session( ) ../session.php:120
6 0.0199 689136 supprimer_sessions( ) ../session.php:108
7 0.0233 690212 spip_session( ) ../session.php:215
8 0.0234 691228 pipeline( ) ../utils.php:1689
9 0.0238 695516 execute_pipeline_definir_session( ) ../utils.php:120
10 0.0239 696060 minipipe( ) ../charger_pipelines.php:189
11 0.0239 697036 call_user_func ( ) ../utils.php:85
12 0.0239 697064 bdd_definir_session( ) ../utils.php:85
13 0.0243 697624 session_set( ) ../bdd_pipeline_definir_session.php:36
14 0.0243 699720 ajouter_session( ) ../session.php:120
15 0.0256 702248 supprimer_sessions( ) ../session.php:108
16 0.0274 703324 spip_session( ) ../session.php:215
17 0.0274 704340 pipeline( ) ../utils.php:1689
18 0.0274 705376 execute_pipeline_definir_session( ) ../utils.php:120
19 0.0274 705596 minipipe( ) ../charger_pipelines.php:189
20 0.0274 706572 call_user_func ( ) ../utils.php:85
21 0.0274 706600 bdd_definir_session( ) ../utils.php:85
22 0.0275 706896 session_set( ) ../bdd_pipeline_definir_session.php:36
23 0.0275 708992 ajouter_session( ) ../session.php:120
24 0.0280 711536 supprimer_sessions( ) ../session.php:108
25 0.0293 712612 spip_session( ) ../session.php:215
26 0.0293 713628 pipeline( ) ../utils.php:1689
27 0.0293 714664 execute_pipeline_definir_session( ) ../utils.php:120
28 0.0293 714884 minipipe( ) ../charger_pipelines.php:189
29 0.0293 715860 call_user_func ( ) ../utils.php:85
30 0.0293 715888 bdd_definir_session( ) ../utils.php:85
31 0.0294 716184 session_set( ) ../bdd_pipeline_definir_session.php:36
32 0.0294 718280 ajouter_session( ) ../session.php:120
33 0.0299 720828 supprimer_sessions( ) ../session.php:108
34 0.0312 721904 spip_session( ) ../session.php:215
35 0.0312 722920 pipeline( ) ../utils.php:1689
36 0.0312 723956 execute_pipeline_definir_session( ) ../utils.php:120
37 0.0312 724176 minipipe( ) ../charger_pipelines.php:189
38 0.0312 725152 call_user_func ( ) ../utils.php:85
39 0.0312 725180 bdd_definir_session( ) ../utils.php:85
40 0.0312 725476 session_set( ) ../bdd_pipeline_definir_session.php:36
41 0.0312 727572 ajouter_session( ) ../session.php:120
42 0.0317 730132 supprimer_sessions( ) ../session.php:108
[...]
Cela me semble être un bug, mais comme je ne suis pas de la partie, difficile d'être catégorique sur ce point ... L'erreur peut très bien venir de la méthode que j'emploie pour arriver à mes fins !
Peut être ne faut il pas employer session_set( ) dans le pipeline definir_session ?
Dans ce cas, quelle est la bonne méthode pour étendre les sessions de base de spip au sein d'un plugin pour la version 2.1.X ?
Merci d'avance,
Vincent