Comment dépasser la longueur maximale des messages ?

Started by Paulo.chon, November 16, 2016, 05:31:05 AM

Previous topic - Next topic

Paulo.chon

Bonjour,

Sur mon forum, certains sujets commencent par un message régulièrement édité au fil des contributions et récapitulant de nombreux liens.
Ce premier message devient donc très long.

J'ai augmenté la "Longueur maximale des messages" (dans "paramètre des messages" du sous-menu "forum" du centre d'administration) pour permettre de créer de très longs messages, mais il semble qu'à partir d'un certain chiffre, cette augmentation n'ait plus d'effet (au-delà de 500 000 caractères peut-être...).
J'ai bien vu qu'il y a une option "0 pour aucun max." mais il me semble qu'il peut y avoir un risque à ne mettre aucune barrière en cas de malveillance.

Qu'en pensez-vous ?
- Sur ce risque : un esprit malveillant qui validerait un message d'une quasi infinité de caractères pourrait-il bloquer le forum ? Ou obtenir un autre effet indésirable ?
- Sur une solution pour réellement augmenter la capacité, à 900 000 par exemple : où se trouve cette limite de la longueur maximale des messages, en-dehors du centre d'administration du forum bien entendu ?

Merci !

alexetgus

Salut,

Tu n'as pas grand chose à craindre de ce côté là. PHP est paramétré pour ne pas laisser passer les requêtes POST trop énormes (par défaut, c'est 2Mo).
La base de données ne souffrirait pas avec un énorme article. Ces bêtes là sont étudiées pour travailler avec des quantités énormes de données.

A mes yeux, le seul vrai problème est visuel.

Paulo.chon

OK merci.

Autre question :
Que se passe-t-il si on donne une capacité par exemple de 10000 caractères par message, on écrit des messages de 9500 caractères, puis on repasse la capacité maximale à 5000 ?
Les 4500 caractères "en trop" sont-ils effacés ?
Ou bien simplement ne peut-on plus enregistrer le message si on le modifie, sauf à redescendre sous les 5000 caractères ?

Paulo.chon

#3
Tiens, en fait il semble que le problème rencontré ne résulte pas (seulement ?) de la capacité du message...

Le problème : le premier message d'un sujet a été modifié des dizaines et dizaines de fois pour y entrer des liens et des informations.
A un moment, il n'est plus possible de le modifier. Ni même, quand on l'ouvre pour le modifier, de visualiser le message, même en n'y changeant rien.

En portant la capacité maximale des messages à l'infini (valeur 0), le problème n'est pas résolu.

En enlevant la plus grande partie du message, on peut à nouveau enregistrer la modification.
Mais plus possible de remettre la partie enlevée.


Il s'agit d'un index avec des définitions données dans les messages suivants du sujet, les liens dans le premier message permettant de se rendre directement au message comportant la définition du mot sur lequel on clique, et un lien dans chaque message comportant une définition permettant de revenir à l'index.
Le problème rencontré est donc bien fâcheux...

Quel peut être le problème et quelle solution est possible ?
Ca pourrait ressembler à un problème de cache, non ?

Edit : je retrouve ce message dans les tables et je ne vois aucune indication particulière qui bloquerait les modifications....

alexetgus

Dans PhpMyAdmin, optimise les tables et teste les pour voir si il y a lieu d'en réparer une et surtout celle qui nous intéresse.
N'oublie pas de faire un backup avant de bricoler !

Ca peut peut-être venir du type de champ destiné à recevoir les messages qui est, si ma mémoire est bonne, du type "mediumtext". Cela te fait donc une longueur totale de 2^24-1 caractères. Si ça se trouve, c'est même en "text", et donc 65535 caractères.
Essaye de passer la colonne en "longtext" (2^32-1) pour voir si ça arrange quelque chose.
Si c'est en "text", passe d'abord par "mediumtext". Le "longtext" te limitera aux paramétrages de PHP comme je te l'expliquais plus haut.

Sinon, avant de faire ça, copie ton message et crée en un neuf où tu colleras ta copie avec la nouvelle valeur de longueur max, pour voir.


Quote from: Paulo.chon on November 16, 2016, 10:22:17 AM
OK merci.

Autre question :
Que se passe-t-il si on donne une capacité par exemple de 10000 caractères par message, on écrit des messages de 9500 caractères, puis on repasse la capacité maximale à 5000 ?
Les 4500 caractères "en trop" sont-ils effacés ?
Ou bien simplement ne peut-on plus enregistrer le message si on le modifie, sauf à redescendre sous les 5000 caractères ?

Ca restera tel quel mais il ne faut pas éditer le message, sinon ça ne passera pas le contrôle de longueur.
enfin j'image que c'est comme ça ! :P

maximus23

Bonsoir,

Cela peut se faire comme indique Alexetgus mais le problème que tu auras se passera lors d'un update/upgrade ou les champs seront remis à jour et là tu vas te retrouver avec des types originaux et ta bdd va être tronquée car elle repassera sur les valeurs initiales.

Moi en ce qui me concerne j'évite ce genre de chose car un message trop long on l'évite donc je préfère en faire plusieurs plus petits.

:)

Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Paulo.chon

Oui, pas trop envie de toucher aux tables, surtout au regard de mon niveau de connaissance...

On va se débrouiller...  ;)

alexetgus


Advertisement: