Compter le nombre de caractère dans une chaine ? oui mais...

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par thierry8, 9 Décembre 2005.

  1. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    Bonjour,

    je souhaite compter le nombre de caractère d'une chaine receptionné par un formulaire. Je fais donc un strlen($ma_chaine). Cependant par sécurité j'applique les foncitons php htmlentities() et addslashes() ce qui à pour effet d'ajouter des caractères s'il s'agit de caractères dit spéciaux !

    Solution faire un strlen avant ces fonctions ! puis appliquer les fonctions après pour enregistrer dans la base de données une source fiable et n'avoir plus qu'a la récupérer pour un affichage (opération la plus courante)...Le problème est que la taille de mon champ de la table est logiquement limité ! Donc si je suppose par exemple qu'un prénom ne dépasse pas les 10 caractères je définis la taille de ma table à 10 caractères.
    Si un utilisateur s'appel: azertyuioé
    le premier strlen est de 10 ! Donc impecable ! mais si l'on refais un strlen après les fonctions il en fera 16 (en prenant é = 7 caractères pour que l'on est tous les même base car je ne sais plus combien c'est pas defaut, bref..).

    Donc comment régler ce petit soucis ?

    La meilleur solution consisterait-elle à agrandir la longueur du champ, par exemple 50 caractères et limiter au niveau code...

    (en fait au en écrivant ce post, je me donne la réponse je crois... :? )

    marchi!!!
     
  2. mowmow
    mowmow WRInaute impliqué
    Inscrit:
    3 Novembre 2004
    Messages:
    865
    J'aime reçus:
    0
    é = &eacute ; donc ca vient du htmlentities ;)
     
  3. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
  4. Fab le Fou
    Fab le Fou WRInaute passionné
    Inscrit:
    2 Décembre 2004
    Messages:
    1 109
    J'aime reçus:
    0
    Je comprends ton problème.

    J'ai eu le même soucis avec un mot de passe qui une fois crypté n'avait plus le même nombre de caractères.

    Je ne vois pas de solution simple, puisqu'à priori tu ne sais pas ce que va saisir la personne, donc combien de caractères vont être remplacés.

    En fait, tu mets des champs sans préciser à priori le nombre de caractères max et tu lui dis à posteriori que sa saisie est trop longue (mais il ne va pas comprendre).

    Autre solution : tu enregistres les données sans les modifier et les traite au moment où tu vas t'en servir.

    Je ne pense pas que les données soient dangereuses tant qu'elles sont dans la base ?
     
  5. Plequen
    Plequen Nouveau WRInaute
    Inscrit:
    14 Décembre 2005
    Messages:
    1
    J'aime reçus:
    0
    il suffit tout simplement de ne pas limiter au niveau de la base de donnée, mais au niveau du formulaire lui-même :

    <input type="text" name="" maxlength="10" />
     
  6. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    Oui mais attention ! lorsque tu fais cela, il faut toujours avoir en tête qu'un utilisateur mal intentionné peut modifier la source et donc retourner une chaine plus longue que celle voulue !
     
  7. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    etant donné que je ne fais pas de htmlentites avant mise en BDD, je peux aps te répondre (meme probleme que ton dernier post lol)
     
  8. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
  9. shrom
    shrom WRInaute impliqué
    Inscrit:
    5 Juillet 2004
    Messages:
    781
    J'aime reçus:
    0
    Pourquoi utiliser htmlentities sur des pseudos ? strip_tags est nettement plus utile pour ce genre d'utilisation.
    Code:
    $pseudo = strip_tags( $_REQUEST['pseudo'] );
    if( strlen( $pseudo ) < 10 ) {
        $sql = "INSERT INTO matable (pseudo) VALUES( '".mysql_real_escape_string( $pseudo )."' )';
    }
    
     
  10. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    et si le pseudo est <?pseudo?>
     
Chargement...
Similar Threads - Compter nombre caractère Forum Date
Compter le nombre de mots dans une chaine de caractères Développement d'un site Web ou d'une appli mobile 19 Mai 2009
Compter le nombre de caractères d'une chaine Développement d'un site Web ou d'une appli mobile 12 Juillet 2006
Compter le nombre de caractère que retourne un fichier .php Développement d'un site Web ou d'une appli mobile 5 Février 2006
Compter le nombre d'occurrences d'un mot dans un site Google : l'entreprise, les sites web, les services 30 Juillet 2014
COmpter nombre de clic (vs visite) Google Analytics 9 Septembre 2013
Script pour compter et afficher le nombre de mots d'une page Développement d'un site Web ou d'une appli mobile 5 Février 2013
Compter le nombre de liens vers une même page Administration d'un site Web 17 Octobre 2011
[PHP/MySQL] Compter le nombre de checkbox cochées Développement d'un site Web ou d'une appli mobile 11 Septembre 2010
Compter le nombre de fois ou une page a été vue Développement d'un site Web ou d'une appli mobile 3 Juin 2010
Compter le nombre de clients à l'aide de Google Analytics Google Analytics 27 Octobre 2009
[PHP] : compter le nombre de requêtes MySQL Développement d'un site Web ou d'une appli mobile 4 Décembre 2008
Compter le nombre d'enregistrement différents dans mysql Développement d'un site Web ou d'une appli mobile 31 Janvier 2006
Comment compter le nombre de / dans l'url ? Développement d'un site Web ou d'une appli mobile 6 Novembre 2005
Comment compter le nombre de pages indexées d'un site ? Référencement Google 4 Octobre 2004
mécanique - machine à compter les champignons Demandes d'avis et de conseils sur vos sites 28 Janvier 2020
RGPD et conséquences des titres émis à compter de 2020 Droit du web (juridique, fiscalité...) 8 Janvier 2020
Compter les clics sur liens sortants avec redirection Google Analytics 9 Mai 2019
Comment compter les lettres d'un texte ? Développement d'un site Web ou d'une appli mobile 27 Août 2016
[lemondedutennis.com] Vos avis compteront tous :) Demandes d'avis et de conseils sur vos sites 13 Décembre 2012
Compter les affichages de bannières sous GA pour avoir le taux de clic Google Analytics 10 Septembre 2012