J'ai le même problème depuis que j'ai mis à jour avec confort upate vers LimeSurvey Community Edition Version 6.15.7+250820
Bonjour à tous,Je partage ici mon retour d’expérience concernant l’erreur
403 “Invalid access token” qui survient à la fin d’un questionnaire, alors que les réponses sont bien enregistrées.
Étape 1 – Modification du bloc
Dans le fichier
Code:
SurveyRuntimeHelper.php
, à l’intérieur de la fonction
Code:
public function run($surveyid, $args)
, j’ai d’abord essayé de modifier le bloc qui gère le transfert du token de la session vers la réponse.
L’idée était de forcer l’enregistrement du
dans
Code:
$oSurveyResponse->token
et de gérer le nettoyage de session différemment.Malheureusement, cette modification n’a pas suffi : j’avais toujours l’erreur 403 en fin de parcours.
Étape 2 – Commenter la ligne critique
Finalement, le vrai déclencheur de l’erreur était la ligne qui supprime trop tôt les tokens de la session.
Dans mon code, cela correspondait à :
Code:
unset($_SESSION[$this->LEMsessid]['filltoken'], $_SESSION[$this->LEMsessid]['token']);
J’ai simplement commenté cette ligne :
Code:
// unset($_SESSION[$this->LEMsessid]['filltoken'], $_SESSION[$this->LEMsessid]['token']); // commenté pour éviter l’erreur 403
Puis => Vider le cache de limesurvey
Résultat : Depuis cette modification, le problème est résolu :
- le questionnaire se termine normalement,
- il n’y a plus de 403,
- les mails de confirmation et de notification sont envoyés correctement.
Je pense que le problème vient du fait que LimeSurvey supprime le token de la session
avant d’avoir fini d’afficher la page de fin et de traiter la logique associée.
En attendant une correction dans le core, ce contournement permet de faire fonctionner correctement les enquêtes.
Eric