échapper les caractère spéciaux

comalias94 -  
 comalias94 -
Bonjour,
Je voudrais savoir comment échapper les caractère spéciaux avec MySQL
quel est le paramétrage a faire ?

J'utilise la version 5

Merci
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. toto
     
    Bonjour

    il n'y a pas de paramétrage particulier.
    en php, il y a la fonction mysql_real_escape_string qui sert à cà (et surtout pas addslashes comme on voit souvent)
    0
    1. comalias94
       
      Bonjour

      j'ai essayer cette fonction mais aucun effet sur les cractère accentués

      que faut il utiliser ?
      0
      1. Alain_42 Messages postés 5413 Statut Membre 904 > comalias94
         
        cette fonction ne fait rien sur les caracteres accentues, htmlentites le fait mais j'ai remarqué que ça ne marche pas bien avec les caracteres accentues recus d'un formulaire.

        alors il faut te faire une petite fonction avec ereg_replace("é";"é", $chaine) par exemple

        tu mets tous les carateres dans un array et tu fais une boucle
        0
      2. toto > comalias94
         
        j'ai essayer cette fonction mais aucun effet sur les cractère accentués
        Cette fonction ne fait rien sur les caractères accentués parce que les caractères accentués n'ont pas à être échappés.
        Quant à htmlentities, ça sert à coder les caractères pour un affichage en html. Aucun rapport avec les bases de données, même si on lit souvent le contraire. Elle ne devrait être utilisée qu'au moment de l'affichage des données, pas avant leur stockage.
        0
  2. comalias94
     
    ok merci Alain_42 sa fonctionne mais j'ai remarqué que mon soucis provient de ma mase de donné sql car lorsque j'envoie une requette à partir des informations (provenant d'un formulaire) sa bloque :

    $result1 = mysql_query("SELECT * FROM table_champs WHERE NomInput='$temp1b' AND Champs='$temp2b'")

    while($info = mysql_fetch_assoc($result1))
    {
    $msg=mysql_escape_string($info["Type"]);
    }

    ma requettes me donne un résulttat ok dans $msg seulement si l'info que je lui envoie n'a pas de caractère spécial ou de caractère accentué

    PS: $temp1b et $temp2b sont issue d'un mysql_real_escape_string() et d'un ereg_replace() avant d'etre utilisé dans la requette

    Merci pour votre aide
    0