IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Le serveur limite un textarea à 512 caractères


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Le serveur limite un textarea à 512 caractères
    Bonjour,

    J'ai un formulaire (GET) qui contient un textarea.
    Un problème survient dés que le texte contenu dans le textarea dépasse 512 caractère (je ne précise pas le problème, code vaste).

    L'ensemble fonctionne parfaitement en local, sous Firefox et IE, sachant que la longueur de l'url est largement inférieure à 1000 caractères.

    Je ne trouve pas d'élément de configuration sur apache et php, et suis un peu paumé.
    Si quelqu'un a une direction à me donner, ce serait super :)
    Dernier au cas où truc: je dois passer par un NetAsq pour le serveur problématique.

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    pourquoi tu passes en GET ? je me demande si le problème ne vient pas plutôt de la limite de caractères envoyables en GET (vu que ce que tu saisis sera transmis en paramètres dans l'url définie dans ta balise form)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    En fait, je valide mon formulaire via Ajax (jQuery) et un getJSON (qui par défaut est en GET).

    Du coup l'appel Ajax transmet les datas à un contrôleur de formulaire (c'est lui qui génère l'erreur). J'ai vérifié l'url: elle n'est pas tronquée (mais pèse tout de même 1675 caractères). Le fait d'augmenter sa taille (sur un autre champ, tout en limitant celui du textarea à moins de 512 caractères) ne provoque pas l'erreur.

    Je vais faire sauter des verrous dans mon code pour avoir plus d'infos sur l'erreur, mais je reste persuadé d'être confronté à un problème de configuration du serveur.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    C'était une poste, il me semble en effet après réflexions que la longueur limite d'une url est beaucoup plus importante.
    Quand tu écris "problème" dans ton premier post, ça veut dire quoi ? données tronquées ? script qui plante ?

    Si tu appelles bêtement en ajax un script php qui fait un echo de ta variable il se passe quoi? genre (la syntaxe jquery peut être fausse)

    le script js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $.ajax( 'url' : 'ajax.php',
    'data' : {'texte' : $("#mon_id_de_textarea").value()},
    'method' : 'GET'
    )
    };
    script ajax.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
    echo $_GET['texte'];

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    J'ai fait plus simple dans le même esprit:
    un var_dump($_REQUEST) sur le contrôleur.

    Et effectivement la variable concernée disparaît (n'est pas transmise) dés que sa taille dépasse les 512 caractères.

    J'ai du coup court-circuité l'ajax et effectué un nouveau var_dump($_REQUEST) sur le contrôleur: et là, tout est ok en POST (la variable est bien présente) mais pas en GET.

    Donc problème cerné ^^

    J'ai donc la possibilité de changer mon code Ajax (c'est un peu lourd et je manque de temps), mais je préfèrerais trouver la bonne configuration serveur: où dois-je regarder ? Rien ne m'a sauté aux yeux sur un phpinfos.

    Encore merci pour ton aide.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    je me demande si le problème n'est pas plus du coté du JS alors.

    autre question bête : si on fait un truc pas propre du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //toujours en passant par jquery pour ton appel ajax
     
    $.ajax( 'url' : 'ajax.php?texte='+$("#mon_id_de_textarea").value(),
    )
    };
    tu récupères les données ou pas ?

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Si le code que tu viens de me donner transmet les infos en POST, elles passeront. Mais pas en GET (cf mes tests précédents).

    Mon appel actuel par jQuery est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $.getJSON("ajax.php&" + form.serialize(), function(json) {...});
    Or getJSON fonctionne en GET. Le serveur (configuration PHP) limite la taille des argument à 512, d'où l'erreur. Il faut donc que je change ce morceau de code jQuery :/

    Au passage, la limitation à 512 caractères par argument est due à la présence de suhosin sur le serveur, avec un suhosin.get.max_value_length = 512...

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    getJson n'est qu'un raccourci de $.ajax, donc soit tu utilise ajax soit le raccourci $.post :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $.post("ajax.php",{},function(json){},'json')

Discussions similaires

  1. [JTextArea] limiter le nombre de caractères
    Par spoutyoyo dans le forum Composants
    Réponses: 5
    Dernier message: 14/09/2007, 15h45
  2. limiter le nombre de caractères dans <textarea>
    Par swissmade dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/03/2007, 10h13
  3. Limiter le nombre de caractère dans un textarea
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 25/04/2006, 15h57
  4. Limiter le nombre de caractère par ligne d'un textarea
    Par rantanplan08 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 04/01/2006, 19h31
  5. Limiter le nbr de caractères d'un textarea en JavaScript
    Par yoyot dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2005, 12h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo