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 :

Modification de la bdd avec mysql_real_escape [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 73
    Par défaut Modification de la bdd avec mysql_real_escape
    Je suis entrain de sécuriser mon code php et je me demandais si cette syntaxe était juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE matable SET gains=gains+'".mysql_real_escape_string($var)."' where id='".mysql_real_escape_string($id)."' AND idmembre='$idmbr'");
    Merci

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    mysql_real_escape_string() est une fonction qui sert à sécuriser les chaines de caractères dans les requêtes MySQL.

    Dans ton cas gains=gains+'".mysql_real_escape_string($var)."'

    je suppose que le champ gains est un numérique et pas une chaine de caractère.
    mysql_real_escape_string n'a donc pas lieu d'être utilisé ici.

    Par contre il faut :
    - soit vérifier avant d'exécuter ta requête que $var est bien une valeur numérique avec is_int() ou is_float() etc..
    - soit ne pas vérifier et protéger ton champ par un intval() ou floatval() suivant le type de champ à la place de mysql_real_escape_string()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 73
    Par défaut
    ok merci et htmlentities() sert a quoi ?
    et si il ya des nombres et caracteres speciaux ? je met quoi ?

  4. #4
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    c'est pour transformer les caractères spéciaux par leur code html.

    Par exemple deviendra €

    ça sert uniquement à l'affichage sur ton site.
    Si par exemple tu proposes aux membres de ton site d'écrire leur présentation sur leur profil, rien ne les empêche d'écrire quelque chose comme :
    <script type="text/javascript">
    ...
    </script>
    Si tu affiches ça tel quel sans utiliser htmlentities, alors ce sera considérer comme du code html et le code javascipt s'exécutera.

    Si tu utilise htmlentities alors les caractères spéciaux comme < ou > seront convertis et donc ne sera pas considéré comme du code html.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 73
    Par défaut
    d'accord et si je veut insérer dans ma bdd des nombres et des caractere speciaux j'utilises quand meme inval ?

  6. #6
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    intval() pour les champs qui ne doivent contenir que des nombres entier
    floatval() pour les champs qui ne doivent contenir que des nombres à virgule
    mysql_real_escape_string() pour les champs text / varchar

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Modification et suppression bdd avec php
    Par stefanelle dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/02/2009, 11h22
  2. Modification de fichier XML avec XSLT
    Par osmoz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/07/2005, 11h04
  3. BDD avec alphanumérique décalé à droite
    Par Flam dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/04/2005, 17h54
  4. [Composant] BDD avec Delphi 6 Perso
    Par Manopower dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/02/2005, 09h47
  5. Déployer une BDD avec son appli
    Par Albertolino dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 11/03/2004, 18h08

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