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 :

problème avec les ' qui font \'


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Par défaut problème avec les ' qui font \'
    bonjour
    je suis en phpMyAdmin 2.6.4-pl2, langage french (fr-utf8), interclassement ascii-general-ci,
    et j'ai un pb avec mes pages php, quand j'écris dans mes pages php et que je valide, les apostrophes se retrouvent toutes précédés d'un \.

    ex: si j'écris dans une page php "j'ai l'eau courante", ça donne j\'ai l`\'eau courante
    et chaque tentative de revalidation de la page rajoute un \
    ce qui fait que je retrouve avec des j\\\\'ai l\\\\'eau courante

    j'ai tenté plusieurs langages mais rien n'y fait, quelqu'un aurait une suggestion à me faire car j'y perd mon latin2_general_ci

    merci d'avance et bon dimanche

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    Salut

    Tu peux preciser un peu ce que tu appelle "valider" ?
    Tu a un formulaire web qui te permet de faire un insertion dans une base MySQL et quand tu rappelle la page tu affiche a nouveau se formulaire avec les valeurs enregistrees dans la base MySQL ?? C ca ?

    Tu parle d'une page php que tu as creee tout seul ou de une de php myadmin ??

    Merci pour les precisions

  3. #3
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    c'est que tu dois avoir l'option magic_quote_gpc à on dans la configuration du php.ini

    donc 2 solutions:

    soit tu la mets à off, et dans ce cas il faudra utiliser la fonction addslashes() ou mysql_real_escape_string() avant toute insertion dans la base de données

    soit tu utilises la fonction stripslashes() pour afficher les données de ton formulaire dans la page.


  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Par défaut
    Citation Envoyé par vincedom
    Salut

    Tu peux preciser un peu ce que tu appelle "valider" ?
    Tu a un formulaire web qui te permet de faire un insertion dans une base MySQL et quand tu rappelle la page tu affiche a nouveau se formulaire avec les valeurs enregistrees dans la base MySQL ?? C ca ?

    Tu parle d'une page php que tu as creee tout seul ou de une de php myadmin ??

    Merci pour les precisions
    oui c'est ça, c'est vrai que mon explication n'était pas clair.
    c'est quand je valide mes formulaires (pages faites maison) qui font des insertions dans la base.
    et chaque tentative de revalidation du formulaire ajoute un \.
    merci

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Par défaut
    Citation Envoyé par ska_root
    c'est que tu dois avoir l'option magic_quote_gpc à on dans la configuration du php.ini

    donc 2 solutions:

    soit tu la mets à off, et dans ce cas il faudra utiliser la fonction addslashes() ou mysql_real_escape_string() avant toute insertion dans la base de données

    soit tu utilises la fonction stripslashes() pour afficher les données de ton formulaire dans la page.

    je n'utilise pas de php.ini, par contre j'ai cette variable dans mon functions.inc.php.
    elle donne ceci
    <? function text2sql($texte,$slash=0)
    {
    if ($slash==1):
    $format_text=str_replace("<","&lt;",$texte);
    $format_text=str_replace(">","&gt;",$format_text);

    return addslashes($format_text);
    else:
    $format_text=str_replace("<","&lt;",$texte);
    $format_text=str_replace(">","&gt;",$format_text);
    return $format_text;
    endif;
    }?>
    d'après toi que dois je faire ?
    merci bcp

  6. #6
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    En apparence tu ne connais pas htmlspecialchars()...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Par défaut
    en apparence non

  8. #8
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    hop -> http://fr2.php.net/manual/fr/function.htmlentities.php

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Par défaut
    en effet, ça ressemble bien à mon petit pb
    je vais lire ça
    merci

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Citation Envoyé par Rocco-biblio
    je n'utilise pas de php.ini
    Je suis persuadé que si

  11. #11
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Par défaut
    Citation Envoyé par Yogui
    Salut

    Citation Envoyé par Rocco-biblio
    je n'utilise pas de php.ini
    Je suis persuadé que si

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Par défaut
    riez, riez, mais je confirme, je n'ai pas de php.ini
    et pourtant ça marche

    vous riez encore ?

  13. #13
    Membre éclairé Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Par défaut
    Ce que je fait pour ne plus avoir de problème avec les ' " \

    Je tape le text dans un textarea,
    Si je valide le formulaire, les données restes dans le formulaires car j'ai fait un $form_donnees = stripslashes($_POST["donnees"]); ?

    Ensuite pour crée ma requete et l'envoyé à MySQL j'utilise l'exemple de la doc officiel.

    http://fr.php.net/mysql_real_escape_string



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    // Protège la variable
    function quote_smart($value)
    {
       // Stripslashes
       if (get_magic_quotes_gpc()) {
         $value = stripslashes($value);
       }
       // Protection si ce n'est pas un entier
       if (!is_numeric($value)) {
         $value = "'" . mysql_real_escape_string($value) . "'";
       }
       return $value;
    }
     
    // Connexion
    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());
     
    // Fabrication d'une requête sécurisée
    $query = sprintf("SELECT * FROM users WHERE user=%s AND password=%s",
    quote_smart($_POST['username']),
    quote_smart($_POST['password']));
     
    mysql_query($query);
    ?>
    Si tu a un serveur Apache, tu a un fichier php.ini dans le rep d'apache.

  14. #14
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    Citation Envoyé par Rocco-biblio
    riez, riez, mais je confirme, je n'ai pas de php.ini
    et pourtant ça marche

    vous riez encore ?
    Oui.

  15. #15
    Membre Expert Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Par défaut
    Citation Envoyé par macbook
    Oui.
    J'allais dire la même chose, marrant.

  16. #16
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut
    salut a tous!

    Permettez moi que je me joigne à ce fou rire communautaire

    WDio

  17. #17
    Membre expérimenté Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Par défaut
    Au lieu de rire, pourquoi ne pas lui expliquer la raison de notre réaction ? ^^
    EN fait le fichier php.ini c'est le fichier dans lequel tout la configuration de php, donc pas de php.ini : pas de php fonctionnel.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2010, 16h26
  2. [FOP] Problème avec les fonts.
    Par Didine981 dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 02/12/2009, 16h55
  3. Réponses: 5
    Dernier message: 31/05/2009, 20h48
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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