Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Finir plus tard : Call to undefined method stdClass::save()

More
2 weeks 2 days ago #273022 by helenec853
Version de votre LimeSurvey :  6.13.0+250415 
==================
Bonjour,
Nous avons plusieurs questionnaires accessibles via un code d'accès, pour lesquels le bouton "Finir plus tard" est présent. Si je renseigne plusieurs pages de réponses et qu'ensuite je clique sur "Finir plus tard", j'atterris sur cette erreur : " 500 : Erreur interne au serveur - Call to undefined method stdClass::save()".
Je n'ai pas trouvé de référence à cette erreur, peut-être quelqu'un arriverait à m'aider ?
Merci beaucoup,
Hélène

Please Log in to join the conversation.

More
2 weeks 2 days ago #273027 by DenisChenu
J'ai la version 615 : je ne peux pas reproduire.

Tu as moyen de mettre à jour ?
Tu as des extensions/plugins actifs ?
 

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

More
2 weeks 2 days ago #273030 by helenec853
Bonjour,
J'ai mis à jour mon serveur de test en 6.15.22, l'erreur se reproduit toujours.
Je n'ai qu'un seul plugin, CASauth, pour la connexion via les identifiants de mon organisation. Mais les personnes qui répondent aux questionnaires ne se connectent pas. 
Est-ce que ça pourrait être lié aux paramètres du questionnaire ?

Please Log in to join the conversation.

More
2 weeks 1 day ago #273036 by DenisChenu
Tu peux activer toi même le mode debug ?  www.limesurvey.org/manual/Debug_mode  
Si oui : faire un test avec ce mode et envoyer le résultat ici.
Y a un truc qui passe mal , mais quoi ???
 

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

More
2 weeks 1 day ago - 2 weeks 1 day ago #273038 by helenec853
En activant le mode debug, j'ai l'erreur qui s'affiche immédiatement dans limesurvey, pas besoin d'aller dans le questionnaire : 
Code:
[b]Notice[/b]: Undefined offset: 0 in [b]/opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CUrlManager.php[/b] on line [b]668[/b]
 
[b]Warning[/b]: Cannot modify header information - headers already sent by (output started at /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CUrlManager.php:668) in [b]/opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/base/CErrorHandler.php[/b] on line [b]293[/b]PHP noticeUndefined offset: 0/opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CUrlManager.php(668)656 */
657 public function __construct($route,$pattern)
658 {
659 if(is_array($route))
660 {
661 foreach(array('urlSuffix', 'caseSensitive', 'defaultParams', 'matchValue', 'verb', 'parsingOnly') as $name)
662 {
663 if(isset($route[$name]))
664 $this->$name=$route[$name];
665 }
666 if(isset($route['pattern']))
667 $pattern=$route['pattern'];
668 $route=$route[0];
669 }
670 $this->route=trim($route,'/');
671
672 $tr2['/']=$tr['/']='\\/';
673
674 if(strpos($route,'<')!==false &amp;&amp; preg_match_all('/<;(\w+)>/',$route,$matches2))
675 {
676 foreach($matches2[1] as $name)
677 $this->references[$name]="<$name>";
678 }
679
680 $this->hasHostInfo=!strncasecmp($pattern,'http://',7) || !strncasecmp($pattern,'https://',8);
Stack Trace#0+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CUrlManager.php(270): [b]CUrlRule[/b]->[b]__construct[/b](array("<_sid:\d+>/lang-<_lang:\w+[-\w]+>/tk-<_token:\w+>/*" => "survey/index/sid/<_sid>/lang/<_lang>/token/<_token>", "<_sid:\d+>/lang-<_lang:\w+[-\w]+>/*" => "survey/index/sid/<_sid>/lang/<_lang>", "<_sid:\d+>/tk-<_token:\w+>/*" => "survey/index/sid/<_sid>/token/<_token>", "<_sid:\d+>/*" => "survey/index/sid/<_sid>", ...), "rules") #1+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CUrlManager.php(226): [b]CUrlManager[/b]->[b]createUrlRule[/b](array("<_sid:\d+>/lang-<_lang:\w+[-\w]+>/tk-<_token:\w+>/*" => "survey/index/sid/<_sid>/lang/<_lang>/token/<_token>", "<_sid:\d+>/lang-<_lang:\w+[-\w]+>/*" => "survey/index/sid/<_sid>/lang/<_lang>", "<_sid:\d+>/tk-<_token:\w+>/*" => "survey/index/sid/<_sid>/token/<_token>", "<_sid:\d+>/*" => "survey/index/sid/<_sid>", ...), "rules") #2+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CUrlManager.php(206): [b]CUrlManager[/b]->[b]processRules[/b]() #3+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/base/CModule.php(394): [b]CUrlManager[/b]->[b]init[/b]() #4+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/base/CApplication.php(531): [b]CModule[/b]->[b]getComponent[/b]("urlManager") #5– /opt/applis/limesurvey/limesurvey6.15.22/application/core/LSHttpRequest.php(157): [b]CApplication[/b]->[b]getUrlManager[/b]()152 // Dont run this code in console
153 if (php_sapi_name() == 'cli') {
154 return;
155 }
156
157 $route = Yii::app()->getUrlManager()->parseUrl($this);
158
159 if ($this->enableCsrfValidation) {
160 $validationRoutes = $this->noCsrfValidationRoutes;
161 $validationParams = $this->noCsrfValidationParams;
162 // $validationRoutes = 'plugins/direct/plugin/AuthSAML/function/acs';
#6+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CHttpRequest.php(119): [b]LSHttpRequest[/b]->[b]normalizeRequest[/b]() #7+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/base/CModule.php(394): [b]CHttpRequest[/b]->[b]init[/b]() #8+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/base/CApplication.php(522): [b]CModule[/b]->[b]getComponent[/b]("request") #9+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CWebApplication.php(545): [b]CApplication[/b]->[b]getRequest[/b]() #10– /opt/applis/limesurvey/limesurvey6.15.22/application/core/LSYii_Application.php(121): [b]CWebApplication[/b]->[b]init[/b]()116 }
117
118 /* @inheritdoc */
119 public function init()
120 {
121 parent::init();
122 $this->initLanguage();
123 // These take care of dynamically creating a class for each token / response table.
124 Yii::import('application.helpers.ClassFactory');
125 ClassFactory::registerClass('Token_', 'Token');
126 ClassFactory::registerClass('Response_', 'Response');
#11+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/base/CApplication.php(170): [b]LSYii_Application[/b]->[b]init[/b]() #12– /opt/applis/limesurvey/limesurvey6.15.22/application/core/LSYii_Application.php(98): [b]CApplication[/b]->[b]__construct[/b](array("name" => "LimeSurvey", "localeClass" => "LSYii_Locale", "defaultController" => "surveys", "modules" => array("HelloWorld" => array("class" => "modules.root.HelloWorld.HelloWorldModule")), ...))093 if (array_key_exists('use_custom_twig_extensions', $baseConfig) &amp;&amp; $baseConfig ['use_custom_twig_extensions']) {
094 $aApplicationConfig = $this->getTwigCustomExtensionsConfig($baseConfig['usertwigextensionrootdir'], $aApplicationConfig);
095 }
096
097 /* Construct CWebApplication */
098 parent::__construct($aApplicationConfig);
099
100 /* Because we have app now : we have to call again the config (usage of Yii::app() for publicurl) */
101 $this->setConfigs();
102 /* Since session can be set by DB : need to be set again … */
103 $this->setSessionByDB($aApplicationConfig);
#13+ /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/YiiBase.php(132): [b]LSYii_Application[/b]->[b]__construct[/b](array("basePath" => "/opt/applis/limesurvey/limesurvey6.15.22/application", "name" => "LimeSurvey", "localeClass" => "LSYii_Locale", "defaultController" => "surveys", ...)) #14+ /opt/applis/limesurvey/limesurvey6.15.22/index.php(161): [b]YiiBase[/b]::[b]createApplication[/b]("LSYii_Application", array("basePath" => "/opt/applis/limesurvey/limesurvey6.15.22/application", "name" => "LimeSurvey", "localeClass" => "LSYii_Locale", "defaultController" => "surveys", ...))
Last edit: 2 weeks 1 day ago by DenisChenu. Reason: code

Please Log in to join the conversation.

More
2 weeks 1 day ago #273041 by DenisChenu
Tu peux envoyer ton fichier de config **SANS** la partie base de données (notamment le mot de passe).

A mon avis : le problème du save serait du à 'publicurl'

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

More
2 weeks 8 hours ago #273049 by helenec853
Voici mon fichier config.php : je ne vois pas de publicurl
Code:
return array(
        'components' => array(
                'db' => array(
                ),
 
                 'session' => array (
                        'sessionName'=>'LS-une-string',
                        // Uncomment the following lines if you need table-based sessions.
                        // Note: Table-based sessions are currently not supported on MSSQL server.
                        // 'class' => 'application.core.web.DbHttpSession',
                        // 'connectionID' => 'db',
                        // 'sessionTableName' => '{{sessions}}',
                 ),
                'urlManager' => array(
                        'urlFormat' => 'path',
                        'rules' => array(
                                // You can add your own rules her
                                // e
                                'rules' => require('routes.php')
                        ),
                        'showScriptName' => true,
                ),
        ),
                // For security issue : it's better to set runtimePath out of web access
        // Directory must be readable and writable by the webuser
        // 'runtimePath'=>'/var/limesurvey/runtime/'
        // Use the following config variable to set modified optional settings copied from config-defaults.php
        'config'=>array(
        // debug: Set this to 1 if you are looking for errors. If you still get no errors after enabling this
        // then please check your error-logs - either in your hosting provider admin panel or in some /logs directory
        // on your webspace.
        // LimeSurvey developers: Set this to 2 to additionally display STRICT PHP error messages and get full access to standard templates
                'debug'=>2,
                'debugsql'=>0, // Set this to 1 to enanble sql logging, only active when debug = 2
                // Update default LimeSurvey config here
                // #db auth_webserver : true
                'auth_webserver' => true,
                'siteadminemail' => 'mon_mail@mail.fr',
                'siteadminbounce' => 'mon_mail@mail.fr',
                'siteadminname' => 'administrateur',
                'emailmethod' => 'smtp',
                'emailsmtphost' => 'smtp-out.monsite.fr',
                'maxLoginAttempt' => '100',
                'usercontrolSameGroupPolicy' => false,
        )
);

Please Log in to join the conversation.

More
2 weeks 8 hours ago - 2 weeks 8 hours ago #273051 by DenisChenu
La partie
Code:
'siteadminemail' => 'mon_mail@mail.fr',
                'siteadminbounce' => 'mon_mail@mail.fr',
                'siteadminname' => 'administrateur',
                'emailmethod' => 'smtp',
                'emailsmtphost' => 'smtp-out.monsite.fr',
Je la supprimerai et n'utiliserai que l'admin GUI pour vérifier.

L'envoie des invitations se passe bien ?

Denis
 

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.
Last edit: 2 weeks 8 hours ago by DenisChenu.

Please Log in to join the conversation.

More
2 weeks 7 hours ago #273055 by helenec853
L'envoi des invitations et codes d'accès se passe bien, puissent que le questionnaire a déjà reçu des centaines de réponses

Please Log in to join the conversation.

More
1 week 2 days ago #273111 by DenisChenu
Pas d'idée :(

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

More
6 days 11 hours ago #273145 by helenec853
Aïe aïe aïe, ce n'est vraiment pas de chance... 
J'ai trouvé ce lien, je vais poster un ticket en espérant que les développeurs trouvent une solution, même si c'est dans une nouvelle maj :
help.limesurvey.org/portal/en/myarea

En tout cas encore merci pour ton aide !

Bonne journée,

Hélène
 

Please Log in to join the conversation.

More
6 days 9 hours ago #273146 by DenisChenu
Je suis l'un des développeurs ...

Tu as tous les fichiers ?

Tu peux suprimer le 'rules' => require('routes.php') de ton fichier de config ?

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

More
5 days 10 hours ago #273154 by helenec853
Il semble que tous mes appels à l'aide reviennent vers toi :D

J'ai supprimé la ligne 'rules' => require('routes.php') du fichier config et redémarré le serveur, sans succès...

Quand tu demandes si j'ai tout les fichiers, qu'est-ce que tu veux dire ?
J'ai accès à l'ensemble des fichiers Limesurvey, c'est moi qui ait installé Limesurvey sur mon propre serveur.

Please Log in to join the conversation.

More
5 days 8 hours ago #273157 by DenisChenu
Comparer rapidement avec l'arborescence ici : github.com/LimeSurvey/LimeSurvey

renvoyer les fichiers sans remplacer les anciens (sur filezilla : c'est possible) : comment tu as transféré les fichiers ?

 

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

More
2 days 5 hours ago - 2 days 5 hours ago #273167 by helenec853
Excuse-moi pour le délai de réponse, j'avais cassé mon serveur de test 
A première vue mon arborescence correspond. J'ai juste remarqué le fichier application/config/config.phpas qui chez moi s'appelle config.php

Pour mettre à jour mon limesurvey, je reprends le lien qui est ici :  community.limesurvey.org/downloads/
Code:
wget -P /opt/src/ https://download.limesurvey.org/latest-master/limesurvey6.15.23+251110.zip
Puis unzip dans mon dossier de destination. Je n'écrase pas l'ancienne version, le basculement se fait avec un lien symbolique.

Par contre à chaque maj, je récupère dans l'ancienne 2 fichiers + 1 dossier :
- application/config/config.php
- application/config/security.php
- upload/
Mes fichiers config.php et security.php sont donc les mêmes depuis longtemps.

Est-ce que dans ma procédure tu constates quelque chose qui pourrait expliquer ce problème ?
J'ai activé les logs dans config.php, mais j'ai la même chose que ce que le mode debug affiche :
Code:
2025/11/17 13:31:25 [error] [exception.Error] Error: Call to undefined method stdClass::save() in /opt/applis/limesurvey/limesurvey6.15.22/application/helpers/SurveyRuntimeHelper.php:1191
Stack trace:
#0 /opt/applis/limesurvey/limesurvey6.15.22/application/helpers/SurveyRuntimeHelper.php(218): SurveyRuntimeHelper->saveAllIfNeeded()
#1 /opt/applis/limesurvey/limesurvey6.15.22/application/controllers/survey/SurveyIndex.php(668): SurveyRuntimeHelper->run()
#2 /opt/applis/limesurvey/limesurvey6.15.22/application/controllers/survey/SurveyIndex.php(22): SurveyIndex->action()
#3 /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/actions/CAction.php(76): SurveyIndex->run()
#4 /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CController.php(308): CAction->runWithParams()
#5 /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CController.php(286): CController->runAction()
#6 /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CController.php(265): CController->runActionWithFilters()
#7 /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CWebApplication.php(282): CController->run()
#8 /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/web/CWebApplication.php(141): CWebApplication->runController()
#9 /opt/applis/limesurvey/limesurvey6.15.22/vendor/yiisoft/yii/framework/base/CApplication.php(185): CWebApplication->processRequest()
#10 /opt/applis/limesurvey/limesurvey6.15.22/index.php(161): CApplication->run()
#11 {main}
REQUEST_URI=/index.php/812484
Last edit: 2 days 5 hours ago by helenec853. Reason: code syntax

Please Log in to join the conversation.

Moderators: Nickkoholchtpartner

Lime-years ahead

Online-surveys for every purse and purpose