Valider ee5c9843 rédigé par Maïeul's avatar Maïeul Validation de cerdic
Parcourir les fichiers

Dans `objet_modifier_champs()` on a une sécurité qui vérifie qu'après la

modification de la ligne via `sql_updateq()`, ce qu'on lis au retour de `sql_fetsel()` est bien ce qu'on a demandé à être enregistré.

Cette sécurité possède par ailleurs une dérogation pour les entier. Elle n'émet pas de message d'erreur si l'on envoit `''` à `sql_updateq()` et qu'on retrouve `0` à la sortie de `sql_fetsel()`.

Par ailleurs la norme dans SPIP est que pour les dates, on considère
`0000-00-00 00:00:00` comme une date nul. Par conséquent, et en
cohérence avec l'exception sus-citées pour les entier, il faut
considérer que si l'on a envoyé `''` dans `sql_updateq()`, on considère cela
comme équivalent au `0000-00-00 00:00:00` qu'on obtient  au retour de
`sql_fetsel()`.
parent 35893599
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+3 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -233,7 +233,9 @@ function objet_modifier_champs($objet, $id_objet, $options, $c = null, $serveur
			foreach ($moof as $k => $v) {
				if ($v !== $champs[$k]
					// ne pas alerter si le champ est numerique est que les valeurs sont equivalentes
					and (!is_numeric($v) or intval($v) != intval($champs[$k]))
					and (!is_numeric($v) or intval($v) !== intval($champs[$k]))
					// ne pas alerter si le champ est date, qu'on a envoye une valeur vide et qu'on recupere une date nulle
					and (strlen($champs[$k]) or !in_array($v, ['0000-00-00 00:00:00', '0000-00-00']))
				) {
					$liste[] = $k;
					$conflits[$k]['post'] = $champs[$k];