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

PHP & Base de données Discussion :

Filtrage d'une chaine de caractères


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Points : 92
    Points
    92
    Par défaut Filtrage d'une chaine de caractères
    Bonjour,

    J'aimerais me servir en PHP de filter_var(), et notamment de son paramètre FILTER_SANITIZE_STRING avant d'écrire dans la base de donnée pour raison de sécurité. Celle-ci est encodée en UTF-8, et ses données sont retranscrites en brut.
    J'ai un produit, affiché dans un formulaire HTML. Par exemple (et qui me pose souci) "pâtes d'amandes 50%". Une fois passé par 'FILTER_SANITIZE_STRING' et inscrit dans la base, celui-ci est codé (en ISO-8859-1 ? Je ne peux même pas l'écrire tel qu'il est dans la base, 'Développez.com' me le réécrit comme il faut et automatiquement ) Il semblerait que FILTER_SANITIZE_STRING n'aime pas les quotes. Et si je tente de rajouter en second paramètre 'FILTER_FLAG_NO_ENCODE_QUOTES', j'ai carrément une erreur sql qui s'affiche. Dans tous les cas, impossible d'afficher à nouveau ce produit dans la page. Pourquoi ? Comment puis-je remédier à cela ?
    Pour toutes les autres chaînes, y compris avec des caractères spéciaux, je n'ai pas de problème.
    merci,

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as écris la meme chose ( a part la majuscules ) avant et apres le filter_var() et c'est également ce que j'obtiens.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo filter_var("Pâtes d'amandes 50%",FILTER_SANITIZE_STRING);
    //Pâtes d'amandes 50%
    Par contre pour insérer correctement une chaine avec une apostrophe dans une requete il faut utiliser mysql_real_escape_string() (ou une requete préparée).

    Sinon tu vois que ton apostrophe coupe la chaine en deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table (colonne) VALUES ('Pâtes d'amandes 50%');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Points : 92
    Points
    92
    Par défaut re:
    Et ben, si ce n'est pas de la réactivité ça... Oui, je sais qu'il y avait écrit la même chose deux fois, mais le temps que je modifie mon message et j'avais déjà une réponse.
    Je suis bien d'accord pour mysql-escape-string, mais à quel moment je pourrai utiliser filter_var() ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ah oui effectivement il transforme le ' en & # 39 ;

    Tu peux garder le FILTER_FLAG_NO_ENCODE_QUOTES et compléter avec mysql_real_escape_string() au moment de la requete.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. filtrage d'une chaine de caractéres
    Par localhost dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 20/09/2003, 01h11
  3. Réponses: 9
    Dernier message: 17/01/2003, 11h45
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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