diff --git a/ecrire/balise/formulaire_.php b/ecrire/balise/formulaire_.php index f708e834b4a219a637730fa4a4e0e2ce09c2848e..e05681d43038b727a6bd278aae694ab6de12bdd3 100644 --- a/ecrire/balise/formulaire_.php +++ b/ecrire/balise/formulaire_.php @@ -135,7 +135,20 @@ function balise_FORMULAIRE__dist($p) { } // sinon renvoyer un code php dynamique - return calculer_balise_dynamique($p, $p->nom_champ, []); + $p = calculer_balise_dynamique($p, $p->nom_champ, []); + + if (!test_espace_prive() + and !empty($p->descr['sourcefile']) + and $f = $p->descr['sourcefile'] + and basename(dirname($f)) === 'modeles') { + // un modele est toujours inséré en texte dans son contenant + // donc si on est dans le public avec un cache on va perdre le dynamisme + // et on risque de mettre en cache les valeurs pre-remplies du formulaire + // on injecte donc le PHP qui va appeler la fonction pour generer le formulaire au lieu de directement la fonction + $p->code = "'<'.'?php echo (".texte_script($p->code)."); ?'.'>'"; + // dans l'espace prive on a pas de cache, donc pas de soucis (et un leak serait moins grave) + } + return $p; } /** diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index fb9c2f22e61d9c003ed1b1e500545af8a9870cf9..955e5877216c21083efe6229179b3364cfc074cf 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -449,7 +449,7 @@ define('_SPIP_EXTRA_VERSION', '-dev'); define('_DEV_VERSION_SPIP_COMPAT', '4.0.99'); // version des signatures de fonctions PHP // (= date de leur derniere modif cassant la compatibilite et/ou necessitant un recalcul des squelettes) -$spip_version_code = 20211021; +$spip_version_code = 20211117; // version de la base SQL (= Date + numero incremental a 2 chiffres YYYYMMDDXX) $spip_version_base = 2021021800;