8792 sujets

Développement web côté serveur, CMS

Bonjour,

je développe actuellement un formulaire avec un textarea qui envoit des characteres dans un champ MySQL.

mais le probleme c'est que quand je met beaucoup de textes dans mon textarea il save pas le textes dans la base de donnée.

est ce que un textarea est limité en characteres ou le champ MySQL qui est limité?

mon champ a comme valeur LONGTEXT NULL
Modifié par Clad Strife (19 Sep 2006 - 22:47)
Salut Clad,

Je ne suis pas une spécialiste, mais il ne me semble pas qu'il y ait de nombre limité de caractères dans un textarea... Smiley rolleyes
Concernant le champ Mysql, je t'invite à aller jeter un oeil de ce côté.
On y explique la contenance des champs myql suivant leurs valeurs.

Peut-être cela te donnera-t-il un élément de réponse... Smiley ravi
je viens de regarder mais je ne trouve pas le probleme.

quand j'envois mon formulaire avec ebaucoup de textes dans le textarea, il save pas le texte dans la base de donnée, alors quand je met moin de texte, il save le texte dans la base de donnée.

j'ai créé une table nom_du_champ LONGTEXT NULL

avez vous une idée du problème?
Cea peut venir de plusieurs choses :
1. Le type de donnée du champ sQL
Avec longtexte tu ne devrais pas avoir de problème, un champ peut contenir jusqu'à 2 Go sauf erreur.

2. La méthode de transmission GET ou POST.
Si tu transmets tes données en GET, la limite est de 4 Ko moins le nombre de caractères de l'adresse URL (je crois que 'cest parce qu'une adresse URL dans son entier est justement limitée à 4 Ko)
En POST, ça dépend des hébergeurs, mais en principe ils acceptent entre 2 et 32 Mo... il faut vraiment le vouloir pour dépasser cette capacité avec un textarea.
ça peut venir du faite que la requète est faite sans controle de se qu'elle contient:
les caractères comme ' doive etre précedé par un \ pour ne pas ètre interprèté.
la fonction addslashes() fait ça très bien.
si la requète sql échoue elle renvoie FALSE et ne génère pas d'erreur php.

pour ètre sure il faut faire:
mysql_query('...la requète...') or die('la requète à échoué, le script a été tué');

voila, bonne nuit à tous Smiley zzzz
Modifié par desg (19 Sep 2006 - 22:06)
a écrit :
Cea peut venir de plusieurs choses :
1. Le type de donnée du champ sQL
Avec longtexte tu ne devrais pas avoir de problème, un champ peut contenir jusqu'à 2 Go sauf erreur.

2. La méthode de transmission GET ou POST.
Si tu transmets tes données en GET, la limite est de 4 Ko moins le nombre de caractères de l'adresse URL (je crois que 'cest parce qu'une adresse URL dans son entier est justement limitée à 4 Ko)
En POST, ça dépend des hébergeurs, mais en principe ils acceptent entre 2 et 32 Mo... il faut vraiment le vouloir pour dépasser cette capacité avec un textarea.


J'utilise la méthode POST

j'envoi 2ko de textes dans le textarea.

a écrit :

ça peut venir du faite que la requète est faite sans controle de se qu'elle contient:
les caractères comme ' doive etre précedé par un \ pour ne pas ètre interprèté.
la fonction addslashes() fait ça très bien.
si la requète sql échoue elle renvoie FALSE et ne génère pas d'erreur php.

pour ètre sure il faut faire:
mysql_query('...la requète...') or die('la requète à échoué, le script a été tué');

voila, bonne nuit à tous zzzz


j'utilise aussi la fonction stripslashes avant d'envoyer $_POST["nom_du_champ"]; et ensuite ca l'envoit dans la base donnée.
c'est bon j'ai réussi, j'ai essayer la fonction

addslashes ($_POST["nom_du_champ"]);

et il a envoyé le texte dans ma base de donnée.

merci pour vos réponse.