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 :

nettoyer les requêtes


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut nettoyer les requêtes
    bonsoir
    j'essaie de nettoyer mes requêtes j'ai utilisé ce code comme solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $bad_query = array("'","\\",);
    str_replace($bad_query,"",$_SERVER['QUERY_STRING']);
    le probleme c'est que sur mon serveur local
    version PHP 5.2.6 ça marche à merveille , mais sur mon serveur [hostgator ] php version 5 ça ne marche pas
    j'ai changé alors de version vers la PHP 4 et ça marche (mais pas comme le serveur local )
    pouvez vous m'aider a resoudre ce probleme ?

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Il y a peut être une erreur en copiant ton code ici, mais ce que je ne comprend pas, c'est que tu n'échappe pas les quotes ' (ou apostrophes), mais tu les remplace par des anti-slash \
    Les contenus ne sont donc fidèlement respectés.
    C'est volontaire ou c'est une erreur ?


    La différence que tu remarque en Php4 et Php5 est lié à cette directive magic_quotes_gpc, selon quelle soit à On ou Off.

    Le mieux à faire ici, c'est suivre les conseils, et c'est noté dans le php.ini :
    Citation Envoyé par php.ini
    We strongly recommend you use the escaping mechanisms
    designed specifically for the database your using instead of relying on this feature.
    Also note, this feature has been deprecated as of PHP 5.3.0 and is scheduled for removal in PHP 6.
    Donc recommande fortement de se tourner du coté de la Bdd pour traiter le cas des quotes.
    C'est aussi déjà déprécié dans les versions de Php5.3.* et sera définitivement supprimé en Php6.

    En somme, la communauté Php admet avoir fait une erreur en proposant cette directive magic_quotes_gpc (et ce que ça y fait quand c'est à On), et fera machine arrière en la supprimant.
    Donc reproduire (artificiellement) la même chose c'est refaire la même erreur finalement.

    Donc il vaut mieux éviter ça, soit faire des remplacement systématiques, mais d'appliquer les échappements là où c'est nécessaire avec les fonctions prévues pour, et uniquement.

    Pour enregistrer les données dans la Bdd par exemple, et si tu utilise les fonctions mysql_*, alors faut appliquer des mysql_real_escape_string().
    Pour la Bdd toujours, il y a aussi PDO, et si on utilise les requêtes préparées, il y aura rien à rajouter, PDO s'occupe de tout.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    je pense que le code remplace les élements du tableau $bad_query par un espace non ?
    j'echappe donc les antislashs et les quotes
    Pour le reste , rien à dire tres bien expliqué ^^

Discussions similaires

  1. requête pour nettoyer les adresses incomplètes
    Par bouba_95 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 07/02/2007, 10h40
  2. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57
  3. Réponses: 5
    Dernier message: 16/08/2005, 12h15
  4. Réponses: 44
    Dernier message: 14/03/2005, 09h43
  5. Optimisations mysql sur les requêtes SELECT: index
    Par leo'z dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2003, 13h23

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