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 :

mysql_real_escape_string et antislash en trop


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut mysql_real_escape_string et antislash en trop
    Bonjour,

    Je suis actuellement en train de réaliser un formulaire.
    Pour sécuriser l'enregistrement de celui-ci, j'utilise la fonction mysql_real_escape_string().

    Celle-ci me cause le souci suivant, elle m'enregistre en base la chaine avec les caractères d'échappement.

    Ainsi, la chaine "toto'tata" est sauvegardé de la manière suivante "toto\'tata"

    Pourtant, j'ai lu qu'il ne fallait pas utiliser stripslashes pour ré afficher l'enregistrement donc je ne comprend pas trop.

    Info supplémentaire : les magic quotes sont désactivés sur mon serveur

    Faut-il faire un stripslashes pour ré afficher le résultat ? est ce que je fait quelque chose de travers ?

    merci

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    Tu n'as pas de addslashe quelque par dans ton script?

    tu pourrais nous afficher ton script?

  3. #3
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    Malheureusement, je peux pas te copier coller le code intégral car ce n'est pas du php pur car je bosse sur typo3.
    Je vais quand même te mettre les parties principales mais abregées (les "..." remplacent des lignes similaires)

    Bout de code utilisé pour l'insertion en base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // insertion des données
    $fields_values = array (
        'tstamp'                    => time(),
        'identite'                  => mysql_real_escape_string($valeurs['identite']),
        ...
        );
    $GLOBALS['TYPO3_DB']->exec_INSERTquery('ma_table', $fields_values);
    fonction de récupération des valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // recupere les valeurs des champs
    function getValues($idUser) {
     
        $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
                '*',
                'ma_table',
                'id_fe_user="'.$idUser.'"'
                );
        $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
     
        return $row;
    }

    affichage des champs (en réalité, des marqueurs sont remplacés dans un template) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $markerArray['###CIVILITE_VALUE###'] = htmlspecialchars($valeurs['identite']);
    ...
    Du coup, je pensais respecter la philosophie en utilisant mysql_real_escape_string pour l'insertion en base et htmlspecialchars pour l'affichage.

    Sinon, tu me confirmes bien qu'avec mysql_real_escape_string, on échappe les caractères comme le simple quote pour l'exécution de la requête mais qu'au final, en base, cet échappement n'apparait pas ?

    merci

Discussions similaires

  1. [MySQL] mysql n'affiche pas les antislash avec mysql_real_escape_string
    Par rogerlenoir dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 12/06/2011, 11h08
  2. chaine trop longue pour envoyer en socket?
    Par jeje.r dans le forum C++Builder
    Réponses: 10
    Dernier message: 27/06/2003, 16h36
  3. Surface trop grande
    Par Black_Daimond dans le forum DirectX
    Réponses: 1
    Dernier message: 18/01/2003, 03h02
  4. Arrêter un prog si temps de connexion trop long
    Par jakouz dans le forum Langage
    Réponses: 4
    Dernier message: 22/10/2002, 18h28

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