Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

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

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
thierry8
WRInaute accro
WRInaute accro

Inscrit le: 11 Juil 2005
Messages: 3252

URL permanente de ce messagePosté le : Ven Déc 09, 2005 18:15    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

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... Confused )

marchi!!!
 
thierry8 Visiter le site web du posteur
mowmow
WRInaute passionné
WRInaute passionné

Inscrit le: 03 Nov 2004
Messages: 968
Localisation: Zend Engine

URL permanente de ce messagePosté le : Ven Déc 09, 2005 20:01    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

é = &eacute ; donc ca vient du htmlentities Wink
 
mowmow Visiter le site web du posteur
thierry8
WRInaute accro
WRInaute accro

Inscrit le: 11 Juil 2005
Messages: 3252

URL permanente de ce messagePosté le : Ven Déc 09, 2005 20:03    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

ben oui..
 
thierry8 Visiter le site web du posteur
Fab le Fou
WRInaute accro
WRInaute accro

Inscrit le: 02 Déc 2004
Messages: 1484
Localisation: Lorient

URL permanente de ce messagePosté le : Ven Déc 09, 2005 20:18    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

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 ?
 
Fab le Fou Visiter le site web du posteur
Plequen
Nouveau WRInaute

Inscrit le: 14 Déc 2005
Messages: 1

URL permanente de ce messagePosté le : Mer Déc 14, 2005 17:21    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

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" />
 
Plequen
thierry8
WRInaute accro
WRInaute accro

Inscrit le: 11 Juil 2005
Messages: 3252

URL permanente de ce messagePosté le : Mer Déc 14, 2005 17:25    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

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 !
 
thierry8 Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12226
Localisation: Toulouse

URL permanente de ce messagePosté le : Mer Déc 14, 2005 17:36    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

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)
 
e-kiwi Visiter le site web du posteur
thierry8
WRInaute accro
WRInaute accro

Inscrit le: 11 Juil 2005
Messages: 3252

URL permanente de ce messagePosté le : Mer Déc 14, 2005 17:41    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

Je fais a présent pareil ! Cela évite beaucoup de complication...
Grace à l'aide précieuse de sgaze j'ai pu répondre à beaucoup de mes quesitons. Merci encore Wink

Cela pourra sans doute aider quelqu'un d'autre:
http://www.webrankinfo.com/forums/viewtopic_41793.htm
 
thierry8 Visiter le site web du posteur
shrom
WRInaute passionné
WRInaute passionné

Inscrit le: 05 Juil 2004
Messages: 866

URL permanente de ce messagePosté le : Mer Déc 14, 2005 17:48    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

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 )."' )';
}
 
shrom Visiter le site web du posteur
thierry8
WRInaute accro
WRInaute accro

Inscrit le: 11 Juil 2005
Messages: 3252

URL permanente de ce messagePosté le : Mer Déc 14, 2005 17:53    Sujet du message: Compter le nombre de caractère dans une chaine ? oui mais...

et si le pseudo est <?pseudo?>
 
thierry8 Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort