Skip to content
Extraits de code Groupes Projets
Valider 802dc51d rédigé par maieul@maieul.net's avatar maieul@maieul.net
Parcourir les fichiers

variable d'anonymisation :

- code plus clair en évitant de créer des variables juste pour inverser le résultat d'un test, et pour recopier la valeur d'une variable sans la modifier après (!)
- plus de variables globales pour modifier un réglage (qui de toute facon
aurait du passer plutot par un pipeline dédiée)
- limiter les cas d'appel a eval()

Compatibilité assuré pour les quelques personnes qui auraient modifiés
ces variables globales (mais qui?)
parent c9b571ff
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -156,18 +156,13 @@ function formidable_verifier_reponse_formulaire($id_formulaire, $choix_identific
$nom_cookie = formidable_generer_nom_cookie($id_formulaire);
$cookie = isset($_COOKIE[$nom_cookie]) ? $_COOKIE[$nom_cookie] : false;
$anonymiser = ($anonymisation == '') ? false : true;
if ($anonymiser) {
$anonymiser_variable = $anonymisation;
}
// traitement de l'anonymisation
if ($anonymiser) {
if ($anonymisation != '') {
// mod de l'id_auteur
$variables_anonymisation = $GLOBALS['formulaires']['variables_anonymisation'][$anonymiser_variable];
$id = eval("return $variables_anonymisation;");
$id = formidable_variable_anonymisation($anonymisation);
$id_auteur = formidable_scramble($id, $id_formulaire);
}
// ni cookie ni id, on ne peut rien faire
if (!$cookie and !$id_auteur) {
return false;
......@@ -532,3 +527,18 @@ function formidable_tableau_valeurs_saisies($saisies, $sans_reponse = true) {
}
return array($valeurs, $valeurs_libellees);
}
/**
* Retourne la valeur de la variable PHP servant à anonymiser.
* pour les deux variables proposés par formidable, recherche directement dans $_SERVER
* sinon utilise un eval() si une autre variable a été défini en global.
* Mais peu probable que le cas se présente, car pas d'interface dans le .yaml pour proposer d'autres variables que celle définies par formidable
* @param string $nom_variable le nom de la variable
*/
function formidable_variable_anonymisation($nom_variable) {
if (in_array($nom_variable, array("remote_user", "php_auth_user"))) {
$nom_variable = strtoupper($nom_variable);
return isset($_SERVER[$nom_variable]) ? $_SERVER[$nom_variable] : null;
}
return eval("return $nom_variable;");
}
......@@ -22,8 +22,7 @@ function traiter_enregistrement_dist($args, $retours) {
// traitement de l'anonymisation
if ($options['anonymiser'] == 'on') {
// mod de l'id_auteur
$variables_anonymisation = $GLOBALS['formulaires']['variables_anonymisation'][$options['anonymiser_variable']];
$id = eval("return $variables_anonymisation;");
$id = formidable_variable_anonymisation($options['anonymiser_variable']);
$id_auteur = formidable_scramble($id, $id_formulaire);
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter