Tout d'abord, les versions successives sont devenues de plus en plus strictes (c'est plus pro d'être moins laxiste.) Donc des choses qui passaient inaperçues avant remontent au fur et à mesure qu'on avance dans les versions (des « notices » qui deviennent des « warning » par exemple.) Du coup, il est possible que l'erreur existait déjà mais ne remontait ; même si je pense que le souci ne soit pas à ce niveau. Il est possible aussi que si ça remontait on ne l'ai jamais vu jusqu'à ce que tu captures les erreurs...
Je soupçonne que ce soit plausiblement une amélioration du pilote (PDO-MySQL) qui du coup n'est plus silencieux sur ce genre de notification. Il est possible aussi que ça vienne du gestionnaire de bases de données : soit une évolution de version (avec de nouveaux paramètres), soit juste un changement des paramètres existants, dans les deux cas on a maintenant un avertissement là où on avait une troncature silencieuse.
Si on reste sur cent-vingts caractères (mais ceci s'applique pour n'importe quelle longueur en fait) il faut déjà au niveau du formulaire le mentionner pour que les usagers n'aient pas de surprise.
<inputtype=textname=notemaxlength=120/>
Les navigateurs pouvant ne pas respecter ou des esprits malins pouvant soumettre leur propre formulaire, il faut en plus :
soit ajouter dans l'explication du champ cette limitation (et là on peut se dispenser des traitements suivants et enregistrer directement la valeur tronquée –comme indiqué dans une autre réponse)
soit vérifier au niveau serveur et traiter le dépasser de l'une (ou) des façons suivantes :
remonter que l'enregistrement a été tronquée
ou lever une erreur et inviter à la correction
soit autre chose que je ne vois pas tout de suite
"It is seldom that liberty of any kind is lost all at once." ― David Hume
# pas sa faute...
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au message [résolu] PHP7.3 et Mariadb - Gestion des erreurs de longueur des champs texte. Évalué à 2.
Tout d'abord, les versions successives sont devenues de plus en plus strictes (c'est plus pro d'être moins laxiste.) Donc des choses qui passaient inaperçues avant remontent au fur et à mesure qu'on avance dans les versions (des « notices » qui deviennent des « warning » par exemple.) Du coup, il est possible que l'erreur existait déjà mais ne remontait ; même si je pense que le souci ne soit pas à ce niveau. Il est possible aussi que si ça remontait on ne l'ai jamais vu jusqu'à ce que tu captures les erreurs...
Je soupçonne que ce soit plausiblement une amélioration du pilote (PDO-MySQL) qui du coup n'est plus silencieux sur ce genre de notification. Il est possible aussi que ça vienne du gestionnaire de bases de données : soit une évolution de version (avec de nouveaux paramètres), soit juste un changement des paramètres existants, dans les deux cas on a maintenant un avertissement là où on avait une troncature silencieuse.
Si on reste sur cent-vingts caractères (mais ceci s'applique pour n'importe quelle longueur en fait) il faut déjà au niveau du formulaire le mentionner pour que les usagers n'aient pas de surprise.
Les navigateurs pouvant ne pas respecter ou des esprits malins pouvant soumettre leur propre formulaire, il faut en plus :
"It is seldom that liberty of any kind is lost all at once." ― David Hume