pluginsGLPI / formcreator

GLPI Plugin Formcreator (DOWNLOAD : https://github.com/pluginsGLPI/formcreator/releases)
http://www.teclib-edition.com
GNU General Public License v3.0
174 stars 125 forks source link

Problème avec les "grands" formulaires #3079

Closed Ptitcoeur59580 closed 2 years ago

Ptitcoeur59580 commented 2 years ago

Bonjour, Je rencontre un problème avec la validation de grands formulaires. Nous avons mis en place un formulaire afin d'effectuer un "check" de la configuration des PCs. Ce dernier est composé d'une centaine de questions. Si nous répondons a une dizaine de questions, tout se déroule correctement. Par contre, si on rempli tout le formulaire, ce dernier ne s'enregistre pas.

Pas de trace d'erreur dans php-error.log, ni dans sql-error.log, juste le bouton "Envoyer" qui se dédouble

image

si je lance l'inspection de la page, ce dernier ressort une erreur : image

GLPI / Plugins (please complete the following information):

Server
 
Operating system: Linux srv-car-glpi 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64
PHP 7.4.30 apache2handler (Core, FFI, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, apache2handler, apc, apcu, bz2,
calendar, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, imap, intl, json, ldap, libxml,
mbstring, mysqli, mysqlnd, openssl, pcre, pdo_mysql, posix, readline, session, shmop, soap, sockets, sodium, standard, sysvmsg,
sysvsem, sysvshm, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib)
Setup: max_execution_time="30" memory_limit="128M" post_max_size="80M" safe_mode="" session.save_handler="files"
upload_max_filesize="300M"
Software: Apache/2.4.54 (Debian) (Apache/2.4.54 (Debian) Server at glpi.cargo-france.fr Port 80
)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
Server Software: Debian 11
Server Version: 10.5.15-MariaDB-0+deb11u1
Server SQL Mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Parameters: glpiuser@localhost/glpi
Host info: Localhost via UNIX socket

PHP version (7.4.30) is supported. Sessions configuration is OK. Allocated memory is sufficient. mysqli extension is installed. Following extensions are installed: dom, fileinfo, json, simplexml. curl extension is installed. gd extension is installed. intl extension is installed. libxml extension is installed. zlib extension is installed. The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present. Database engine version (10.5.15) is supported. The log file has been created successfully. Write access to /var/www/html/glpi/files/_cache has been validated. Write access to /var/www/html/glpi/config has been validated. Write access to /var/www/html/glpi/files/_cron has been validated. Write access to /var/www/html/glpi/files has been validated. Write access to /var/www/html/glpi/files/_dumps has been validated. Write access to /var/www/html/glpi/files/_graphs has been validated. Write access to /var/www/html/glpi/files/_lock has been validated. Write access to /var/www/html/glpi/files/_pictures has been validated. Write access to /var/www/html/glpi/files/_plugins has been validated. Write access to /var/www/html/glpi/files/_rss has been validated. Write access to /var/www/html/glpi/files/_sessions has been validated. Write access to /var/www/html/glpi/files/_tmp has been validated. Write access to /var/www/html/glpi/files/_uploads has been validated. Web access to files directory is protected PHP directive "session.cookie_httponly" should be set to "on" to prevent client-side script to access cookie values. exif extension is installed. ldap extension is installed. openssl extension is installed. zip extension is installed. bz2 extension is installed. Zend OPcache extension is installed. Following extensions are installed: ctype, iconv, mbstring, sodium. Write access to /var/www/html/glpi/marketplace has been validated. Timezones seems loaded in database.

GLPI constants
 
GLPI_ROOT: /var/www/html/glpi
GLPI_CONFIG_DIR: /var/www/html/glpi/config
GLPI_VAR_DIR: /var/www/html/glpi/files
GLPI_MARKETPLACE_DIR: /var/www/html/glpi/marketplace
GLPI_USE_CSRF_CHECK: 1
GLPI_CSRF_EXPIRES: 7200
GLPI_CSRF_MAX_TOKENS: 100
GLPI_USE_IDOR_CHECK: 1
GLPI_IDOR_EXPIRES: 7200
GLPI_ALLOW_IFRAME_IN_RICH_TEXT:
GLPI_SERVERSIDE_URL_ALLOWLIST: Array
GLPI_TELEMETRY_URI: https://telemetry.glpi-project.org
GLPI_INSTALL_MODE: TARBALL
GLPI_NETWORK_MAIL: glpi@teclib.com
GLPI_NETWORK_SERVICES: https://services.glpi-network.com
GLPI_MARKETPLACE_ALLOW_OVERRIDE: 1
GLPI_MARKETPLACE_MANUAL_DOWNLOADS: 1
GLPI_USER_AGENT_EXTRA_COMMENTS:
GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE: 1
GLPI_AJAX_DASHBOARD: 1
GLPI_CALDAV_IMPORT_STATE: 0
GLPI_DEMO_MODE: 0
GLPI_CENTRAL_WARNINGS: 1
GLPI_DOC_DIR: /var/www/html/glpi/files
GLPI_CACHE_DIR: /var/www/html/glpi/files/_cache
GLPI_CRON_DIR: /var/www/html/glpi/files/_cron
GLPI_DUMP_DIR: /var/www/html/glpi/files/_dumps
GLPI_GRAPH_DIR: /var/www/html/glpi/files/_graphs
GLPI_LOCAL_I18N_DIR: /var/www/html/glpi/files/_locales
GLPI_LOCK_DIR: /var/www/html/glpi/files/_lock
GLPI_LOG_DIR: /var/www/html/glpi/files/_log
GLPI_PICTURE_DIR: /var/www/html/glpi/files/_pictures
GLPI_PLUGIN_DOC_DIR: /var/www/html/glpi/files/_plugins
GLPI_RSS_DIR: /var/www/html/glpi/files/_rss
GLPI_SESSION_DIR: /var/www/html/glpi/files/_sessions
GLPI_TMP_DIR: /var/www/html/glpi/files/_tmp
GLPI_UPLOAD_DIR: /var/www/html/glpi/files/_uploads
GLPI_INVENTORY_DIR: /var/www/html/glpi/files/_inventories
GLPI_NETWORK_REGISTRATION_API_URL: https://services.glpi-network.com/api/registration/
GLPI_MARKETPLACE_PLUGINS_API_URI: https://services.glpi-network.com/api/glpi-plugins/
GLPI_I18N_DIR: /var/www/html/glpi/locales
GLPI_VERSION: 10.0.3
GLPI_SCHEMA_VERSION: 10.0.3
GLPI_MARKETPLACE_PRERELEASES:
GLPI_MIN_PHP: 7.4.0
GLPI_MAX_PHP: 8.3.0
GLPI_YEAR: 2022

Libraries
 
htmlawed/htmlawed version 1.2.9 in (/var/www/html/glpi/vendor/htmlawed/htmlawed)
phpmailer/phpmailer version 6.6.0 in (/var/www/html/glpi/vendor/phpmailer/phpmailer/src)
simplepie/simplepie version 1.5.8 in (/var/www/html/glpi/vendor/simplepie/simplepie/library)
tecnickcom/tcpdf version 6.5.0 in (/var/www/html/glpi/vendor/tecnickcom/tcpdf)
michelf/php-markdown in (/var/www/html/glpi/vendor/michelf/php-markdown/Michelf)
true/punycode in (/var/www/html/glpi/vendor/true/punycode/src)
iamcal/lib_autolink in (/var/www/html/glpi/vendor/iamcal/lib_autolink)
sabre/dav in (/var/www/html/glpi/vendor/sabre/dav/lib/DAV)
sabre/http in (/var/www/html/glpi/vendor/sabre/http/lib)
sabre/uri in (/var/www/html/glpi/vendor/sabre/uri/lib)
sabre/vobject in (/var/www/html/glpi/vendor/sabre/vobject/lib)
laminas/laminas-i18n in (/var/www/html/glpi/vendor/laminas/laminas-i18n/src)
laminas/laminas-servicemanager in (/var/www/html/glpi/vendor/laminas/laminas-servicemanager/src)
monolog/monolog in (/var/www/html/glpi/vendor/monolog/monolog/src/Monolog)
sebastian/diff in (/var/www/html/glpi/vendor/sebastian/diff/src)
donatj/phpuseragentparser in (/var/www/html/glpi/vendor/donatj/phpuseragentparser/src/UserAgent)
elvanto/litemoji in (/var/www/html/glpi/vendor/elvanto/litemoji/src)
symfony/console in (/var/www/html/glpi/vendor/symfony/console)
scssphp/scssphp in (/var/www/html/glpi/vendor/scssphp/scssphp/src)
laminas/laminas-mail in (/var/www/html/glpi/vendor/laminas/laminas-mail/src/Protocol)
laminas/laminas-mime in (/var/www/html/glpi/vendor/laminas/laminas-mime/src)
rlanvin/php-rrule in (/var/www/html/glpi/vendor/rlanvin/php-rrule/src)
blueimp/jquery-file-upload in (/var/www/html/glpi/vendor/blueimp/jquery-file-upload/server/php)
ramsey/uuid in (/var/www/html/glpi/vendor/ramsey/uuid/src)
psr/log in (/var/www/html/glpi/vendor/psr/log/Psr/Log)
psr/simple-cache in (/var/www/html/glpi/vendor/psr/simple-cache/src)
psr/cache in (/var/www/html/glpi/vendor/psr/cache/src)
league/csv in (/var/www/html/glpi/vendor/league/csv/src)
mexitek/phpcolors in (/var/www/html/glpi/vendor/mexitek/phpcolors/src/Mexitek/PHPColors)
guzzlehttp/guzzle in (/var/www/html/glpi/vendor/guzzlehttp/guzzle/src)
guzzlehttp/psr7 in (/var/www/html/glpi/vendor/guzzlehttp/psr7/src)
glpi-project/inventory_format in (/var/www/html/glpi/vendor/glpi-project/inventory_format/lib/php)
wapmorgan/unified-archive in (/var/www/html/glpi/vendor/wapmorgan/unified-archive/src)
paragonie/sodium_compat in (/var/www/html/glpi/vendor/paragonie/sodium_compat/src)
symfony/cache in (/var/www/html/glpi/vendor/symfony/cache)
html2text/html2text in (/var/www/html/glpi/vendor/html2text/html2text/src)
symfony/css-selector in (/var/www/html/glpi/vendor/symfony/css-selector)
symfony/dom-crawler in (/var/www/html/glpi/vendor/symfony/dom-crawler)
twig/twig in (/var/www/html/glpi/vendor/twig/twig/src)
twig/string-extra in (/var/www/html/glpi/vendor/twig/string-extra)
symfony/polyfill-ctype not found
symfony/polyfill-iconv not found
symfony/polyfill-mbstring not found
symfony/polyfill-php80 in (/var/www/html/glpi/vendor/symfony/polyfill-php80)
symfony/polyfill-php81 in (/var/www/html/glpi/vendor/symfony/polyfill-php81)
symfony/polyfill-php82 in (/var/www/html/glpi/vendor/symfony/polyfill-php82)
phpCas version 1.3.8 in (/usr/share/php/CAS/source)

LDAP directories
 
Server: '10.1.10.10', Port: '389', BaseDN: 'OU=Utilisateurs,OU=Cargo,DC=cargo,DC=local', Connection filter:
'(&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))', RootDN:
'admin_cargo@cargo.local', Use TLS: none

SQL replicas
 
Not active

Notifications
 
Way of sending emails: SMTP (anonymous@SRV-CAR-EXCH.cargo.local)

Plugins list
 
addressing           Name: Adressage IP                   Version: 3.0.1      State: Enabled
Install Method: Marketplace additionalalerts Name: Alertes supplémentaires Version: 2.4.0 State: Enabled
Install Method: Marketplace webapplications Name: Applications Web Version: 4.0.1 State: Enabled
Install Method: Marketplace badges Name: Badges Version: 3.0.0 State: Enabled
Install Method: Marketplace barcode Name: Barcode Version: 2.7.1 State: Enabled
Install Method: Marketplace fields Name: Champs supplémentaires Version: 1.18.2 State: Enabled
Install Method: Marketplace accounts Name: Comptes Version: 3.0.2 State: Enabled
Install Method: Marketplace printercounters Name: Compteurs Imprimantes Version: 2.0.0 State: Enabled
Install Method: Marketplace mydashboard Name: Dashboard Version: 2.0.7 State: Installed / not activated
Install Method: Marketplace datainjection Name: Data Injection Version: 2.12.0 State: Enabled
Install Method: Marketplace purchaserequest Name: Demande d'achat Version: 3.0.1 State: Installed / not activated
Install Method: Marketplace useditemsexport Name: Export des éléments utilisés Version: 2.5.1 State: Enabled
Install Method: Marketplace formcreator Name: Form Creator Version: 2.13.2 State: Enabled
Install Method: Marketplace genericobject Name: Gestion d'objets Version: 2.14.0 State: Enabled
Install Method: Marketplace order Name: Gestion des commandes Version: 2.10.0 State: Enabled
Install Method: Marketplace glpiinventory Name: GLPI Inventory Version: 1.0.4 State: Enabled
Install Method: Marketplace manufacturersimports Name: Imports fabricants Version: 3.0.3 State: Enabled
Install Method: Marketplace moreticket Name: More ticket Version: 1.7.1 State: Not installed
Install Method: Marketplace ocsinventoryng Name: OCS Inventory NG Version: 2.0.1 State: Enabled
Install Method: Marketplace satisfaction Name: Plus de satisfaction Version: 1.6.1 State: Enabled
Install Method: Marketplace resources Name: Ressources humaines Version: 3.0.3 State: Not installed
Install Method: Marketplace typology Name: Typologies Version: 3.0.0 State: Installed / not activated
Install Method: Marketplace

Desktop (please complete the following information):

Merci pour toute aide qui permettrait d'utiliser ce service.

Ptitcoeur59580 commented 2 years ago

export_formcreator_20221110_1535.zip

j'ai fait une exportation du formulaire en question, si ca peut aider a résoudre ce problème.

btry commented 2 years ago

Bonjour

Avec autant de questions, il est possible que vous dépassiez une limite définie par le serveur http ou php. Il faut que faire quelques recherches dans ce sens pour voir si c'est un souci de config ou un bug.

dans php.ini voyez post_max_size et il faut trouver un moyen de comparer cette valeur avec la taille de la requête qui échoue.

Ptitcoeur59580 commented 2 years ago

j'ai cette valeur : ; Maximum size of POST data that PHP will accept. ; Its value may be 0 to disable the limit. It is ignored if POST data reading ; is disabled through enable_post_data_reading. ; http://php.net/post-max-size post_max_size = 80M

je ne pense pas dépasser cette valeur.

btry commented 2 years ago

oui, ça me semble largement suffisant.

Si vous utilisez Apache, vérifiez aussi ce paramètre: https://httpd.apache.org/docs/2.0/mod/core.html#limitrequestbody

btry commented 2 years ago

ainsi que LimitRequestFields (même page). ce paramètre est intéressant: valeur par défaut 100

Ptitcoeur59580 commented 2 years ago

Bonsoir. j'ai bien essayé de modifier mon apache.conf en y ajoutant ces 2 valeurs, mais cela fait planter le redémarrage d'apache ! ces directives sont-elles encore d'actualité ?

btry commented 2 years ago

Vérifiez votre version d'apache et prenez la bonne version de la documentation.

Vérifiez aussi que ces paramètres sont situés au bon endroit dans les fichiers de config.

Enfin, la valeur par défaut pour le nombre de paramètres est déjà de 100 par défaut. Il est probable qu'elle soit trop basse pour votre formulaire.

Ptitcoeur59580 commented 2 years ago

Bonjour,

Après avoir trouvé le bon endroit pour cette directive, j'ai pu relancer les tests. Pour être sur de ne pas être bridé par une limite, j'ai mis LimitRequestFields 0 et LimitRequestBody 0 J'ai relancé Apache sans erreur, et le remplissage du formulaire reste identique, j'ai toujours l'erreur du départ.

je ne vois donc pas d'où viens l'erreur...

btry commented 2 years ago

Bonjour

Je pense qu'on peut donc exclure un problème lié à Apache et sa configuration.

Ptitcoeur59580 commented 2 years ago

C'est pour cela que j'ai mis l'export de mon formulaire, ainsi peut-être que l'auteur pourra tester de son coté et voir un éventuel problème.

btry commented 2 years ago

Ma charge de travail étant très élevée, je ne pourrai pas regarder avant au moins quelques semaines.

Ptitcoeur59580 commented 2 years ago

Bonjour,

Apparemment, le bug est résolu avec la nouvelle version.

Merci.

btry commented 2 years ago

Bonjour

De rien, je n'ai rien fait du tout. C'est inattendu que le problème ait disparu.

Vu votre retour, je ferme le ticket. Restez vigilants pendant quelques temps; si le problème réapparait, signalez-le et je rouvrirai le ticket.