ÉCHEC DE VÉRIFICATION DE LA DEMANDE Pour votre protection, l’accès à cette ressource est protégé contre les attaques CSRF

What app is this about, and its version: Roundcube version 1.7.2~ynh1
What YunoHost version are you running: YunoHost 12.1.40.1 (stable)
What type of hardware are you using: VPS bought online

Describe your issue

Bonjour,

Je viens de faire la mise à jour de Roundcube Version 1.6.15~ynh1 vers la version 1.7.2~ynh1.
La mise à jour s’est faite sans problème, mis à part cet avertissement ``automatic_addressbookplugin was replaced with updated version, but the migration of collected data is not possible. What this means you'll lose the contacts fromCollected Recipients collection with this update. Sorry!

Le problème est qu’il y a cet avertissement quand je veux quitter Roundcube :
`ÉCHEC DE VÉRIFICATION DE LA DEMANDE
Pour votre protection, l’accès à cette ressource est protégé contre les attaques CSRF.
Si vous voyez ceci, vous ne vous êtes probablement pas déconnecté avant de quitter l’application Web.

Une interaction humaine est maintenant exigé afin de continuer.

Contactez l’administrateur de votre serveur.`

Autres soucis, tous mes dossiers que j’avais créés "dossier filtres, IP bannis…, etc.) sont vides, plus rien. Dans les paramètres, que ce soit :
Préférences (Interface utilisateur, Vue de la boîte de courriel, Affichage des courriels… jusqu’à Paramètres du serveur) je clique dessus, mais ça n’a aucun effet.
Pareil pour :
Dossiers (et sous dossiers Boite de réception, Brouillons, envoyés…, etc.), je clique dessus, mais ça n’a aucun effet.
Et c’est comme ça sur tous les autres dossiers et sous dossiers (Identités, Réponses, Filtres, Avis d’absence, Clés PGP).

Pas de journaux pouvant m’indiquer les causes de ce problème/bug… :thinking:

Je tombe des nues :open_mouth:

Si quelqu’un à une solution ou ce serait retrouvé dans la même situation, merci pour votre aide

Share relevant logs or error messages

Pas de journaux pouvant m’indiquer les causes de ce problème/bug… :thinking:

Hello,

Ton problème est probablement le même que ce bugreport:

Le workaround proposé n’est que très partiel, l’upgrade n’est probalement pas complète…

Oui, effectivement, c’est le même problème, la solution proposée à permis de le résoudre.
Je peux accéder à tout, me déconnecter sans souci…
Je te remercie, merci​:folded_hands:

Bonjour @JfmbLinux

Est-ce que cela t’ennuierait de nous dire quelle est la version de PHP utilisée par ton système, si l’extension mbstring est installée

php -b
php -m

…et si tu trouves dans le dernier log d’upgrade de roundcube le message suivant:
Installing JavaScript dependencies…PHP Fatal error: Uncaught Error: Call to undefined function mb_internal_encoding() in /var/www/roundcube/program/lib/Roundcube/bootstrap.php:82

?

Merci

Salut,

Désolé de ne répondre que maintenant, la chaleur est étouffante :hot_face: dans ma région (Vigilance Rouge depuis quelques jours) et pas trop envie de me mettre sur l’ordinateur pour vérifier :sweat_smile:
Ce matin ça peut aller, alors j’en profite :wink:

Version de PHP :

PHP 8.2.32 (cli) (built: Jul  3 2026 10:02:17) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.32, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.32, Copyright (c), by Zend Technologies
Résultat php -b

Error in argument 1, char 2: option not found b
Usage: php [options] [-f] [–] [args…]
php [options] -r [–] [args…]
php [options] [-B <begin_code>] -R [-E <end_code>] [–] [args…]
php [options] [-B <begin_code>] -F [-E <end_code>] [–] [args…]
php [options] -S : [-t docroot] [router]
php [options] – [args…]
php [options] -a

-a Run as interactive shell (requires readline extension)
-c | Look for php.ini file in this directory
-n No configuration (ini) files will be used
-d foo[=bar] Define INI entry foo with value ‘bar’
-e Generate extended information for debugger/profiler
-f Parse and execute .
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-r Run PHP without using script tags <?..?>
-B <begin_code> Run PHP <begin_code> before processing input lines
-R Run PHP for every input line
-F Parse and execute for every input line
-E <end_code> Run PHP <end_code> after processing all input lines
-H Hide any passed arguments from external tools.
-S : Run with built-in web server.
-t Specify document root for built-in web server.
-s Output HTML syntax highlighted source.
-v Version number
-w Output source with stripped comments and whitespace.
-z Load Zend extension .

args… Arguments passed to script. Use – args when first argument
starts with - or script is read from stdin

–ini Show configuration file names

–rf Show information about function .
–rc Show information about class .
–re Show information about extension .
–rz Show information about Zend extension .
–ri Show configuration for extension .

Résultat php -m

[PHP Modules]
calendar
Core
ctype
date
dom
exif
FFI
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
openssl
pcntl
pcre
PDO
Phar
posix
random
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

Pour ce qui est du dernier log d’upgrade de Roundcube le message suivant :

Installing JavaScript dependencies…PHP Fatal error: Uncaught Error: Call to undefined function mb_internal_encoding() in /var/www/roundcube/program/lib/Roundcube/bootstrap.php:82
est bien présent.

Ok, merci, désolé pour le php -b, je voulais dire -v mais le doigt a ripé…

L’hypothèse est qu’à cause de l’absence de mbstring pour le php ‘système‘ la màj de roundcube a en partie échoué.

Bon courage avec la chaleur…

Pas grave, c’est la faute de la chaleur :sweat_smile:

Et que faire pour résoudre ceci et éviter à l’avenir que ça se reproduise ?

Ventilos à fond :dashing_away: Merci :sweat_smile:

Dans mon cas, l’upgrade n’a posé aucun problème sur certaines et sur d’autres, j’ai rencontré le même problème que toi. La différence était que dans les cas problématiques, les machines avaient php8.2 comme version “système” sans l’extension mbstring.

En creusant un peu, j’en suis arrivé à cela, sans certitude à 100%:

  • le script d’upgrade lance installto.sh explicitement avec php8.5 mais installto.sh appelle update.sh et install-jsdeps.sh qui, eux sont exécutés avec le php système (donc cela peut retomber sur php8.2) et, par cascade, ils finissent par solliciter mbstring.
  • parmi les solutions, il y a celle que tu as déjà appliquée (et un fix en amont reste à ajouter). J’ai aussi testé l’ajout de mbstring pour la version de php système : cela fonctionne -et c’est aussi sûrement grâce à cela que l’upgrade ne pose pas de problème pour beaucoup d’instances ynh qui gardent php8.2 comme version système- mais ce n’est pas génial d’exécuter une partie du code avec php8.5 et une autre avec php8.2…. J’ai aussi testé le retrait de php8.2 sur une de mes instances mais il faut être sûr qu’aucune app n’en ait plus besoin.

Pas aujourd’hui, mais dans la semaine qui vient, je vais m’y pencher un peu plus.
D’abord faire une sauvegarde total (Sys YNH et Applis) et vérifier chaque applis (j’en ai pas beaucoup, ça va aider) et voir s’il y a moyen de passer en php8.5.

Merci pour l’info.