Project

General

Profile

Anomalie #3617

objet_modifier_champ

Added by jluc - almost 4 years ago. Updated almost 4 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
12/10/2015
Due date:
% Done:

100%

Resolution:
fixed
Navigateur:

Description

objet_modifier_champ est l'api générique de modification d'un objet,
mais le code de la fonction appelle controler_md5 avec l'argument $_POST,
pour des vérifications qui n'ont de sens éventuellement que dans un formulaire.
cf https://core.spip.net/projects/spip/repository/entry/spip/ecrire/inc/modifier.php#L170

Du coup, quand on appelle pas objet_modifier_champ dans un formulaire, un conflit est parfois détecté sans raison.

Associated revisions

Revision 22648 (diff)
Added by cedric@yterium.com almost 4 years ago

Fix #3617 : la fonction objet_modifier_champ utilise options[data] pour verifier les conflit, et si non fourni ou nul se rabat sur $_POST pour assurer la continuite de fonctionnement

Revision 22649 (diff)
Added by cedric@yterium.com almost 4 years ago

Fix #3617 : passer $set a objet_modifier_champs pour qu'elle ne detecte les conflits sur $_POST que quand c'est pertinent

Revision 22650 (diff)
Added by cedric@yterium.com almost 4 years ago

Report de r22648 : Fix #3617 : la fonction objet_modifier_champ utilise options[data] pour verifier les conflit, et si non fourni ou nul se rabat sur $_POST pour assurer la continuite de fonctionnement

Revision 22651 (diff)
Added by cedric@yterium.com almost 4 years ago

Report de r22649 : Fix #3617 : passer $set a objet_modifier_champs pour qu'elle ne detecte les conflits sur $_POST que quand c'est pertinent

History

#1 Updated by cedric - almost 4 years ago

De mémoire, pour avoir eu le cas une fois, si on appelle l'API modifier une seconde fois dans le POST, avec une variable que a le même nom que dans ce qui a été posté, un conflit est détecté à tord.

#2 Updated by jluc - almost 4 years ago

En l'occurence, c'est avec gis : gis_modifier est appelé et appelle
objet_modifier_champs(gis, 1976, options=Array ( [invalideur] => id='gis/1976' ), c=Array (
[titre] => Annonce 10630 — Recherche une chambre temporaire!
[lat] => 44.8964144
[lon] => 4.6452795
[code_pays] => fr
[pays] => France
[zoom] => 6
[descriptif] =>
[adresse] =>
[region] =>
[ville] => Vernoux-en-Vivarais
[departement] => Ardèche
)
Le conflit détecté est : = Array
( [titre] => Array (
[base] =>
[post] => Annonce 10630 — Recherche une chambre temporaire!
)
)

#3 Updated by jluc - almost 4 years ago

De manière générale, la fonction objet_modifier_champ peut être appelée en dehors d'un formulaire, ou dans un formulaire n'ayant rien à voir avec l'objet modifié, et donc elle ne devrait pas faire référence à $_POST

Dans mon code, le pb se produit seulement pour certains points, toujours les mêmes, mais pas pour tous. Je n'ai pas vu ce qu'ils avaient de particulier. Je ne crois pas qu'il y ait plusieurs appels à l'API dans un même hit.

#4 Updated by cedric - almost 4 years ago

  • Status changed from Nouveau to Résolu
  • Resolution set to fixed

#5 Updated by Anonymous almost 4 years ago

  • Status changed from Résolu to Fermé
  • % Done changed from 0 to 100

Appliqué par commit r22650.

Also available in: Atom PDF