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 :

[SQL] Affichage requête caractère spécial


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 87
    Points
    87
    Par défaut [SQL] Affichage requête caractère spécial
    Bonjour à tous !

    Je demande votre aide, car je coince un peu sur un petit problème :

    Dans une de mes tables j'ai une chaîne de caractères de type "coucou + tata" (ceci n'est qu'un exemple).

    Bref, le problème étant à l'affichage de cette chaine de caractère, dans ma page php, j'obtient : "coucou tata". Le caractère spécial "+" ayant disparu.

    De plus, j'utilise cette chaine plus loin dans mon fichier, du coup, cela me sort des résultats incohérents.

    Comment puis-je remédier à cela ? (On m'a parlé de la fonction mysql_real_escape_string() mais étant donné que j'utilise un objet sql, est ce qu'il m'est possible de l'utiliser ?)

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Est ce que ce qui est dans ta table tu l'ajoute par le biais d'un site en faisant un insert into? Ou est-ce que tu ajoute direct dans ta base à la main ce que tu as dedans?
    Si tu passes par le biais d'un POST sur ton site essaies ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $id_link=mysql_connect("adresse","compte","pass") or die("erreur de connexion au serveur");
    $var= htmlentities($_POST['var'], ENT_QUOTES);
    $var= nl2br($var);
    $sql="insert into Tatable(champs1,champs2,...) VALUES ('$champs1','$champs2',...)";
    @mysql_db_query("Tatable",$sql,$id_link);

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par biddal Voir le message
    Est ce que ce qui est dans ta table tu l'ajoute par le biais d'un site en faisant un insert into? Ou est-ce que tu ajoute direct dans ta base à la main ce que tu as dedans?
    Si tu passes par le biais d'un POST sur ton site essaies ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $id_link=mysql_connect("adresse","compte","pass") or die("erreur de connexion au serveur");
    $var= htmlentities($_POST['var'], ENT_QUOTES);
    $var= nl2br($var);
    $sql="insert into Tatable(champs1,champs2,...) VALUES ('$champs1','$champs2',...)";
    @mysql_db_query("Tatable",$sql,$id_link);

    Je passe par un insert et par le biais d'un POST (je récupère une chaine de caractère que l'utilisateur a saisi).

    Je vais tester ton code, merci

    EDIT : après avoir testé, le problème reste le même, en saisissant "salut + coucou", dans ma base, j'ai bien "salut + coucou" mais quand je fais une requête pour l'afficher, j'obtiens "salut coucou".

    Serait-ce un problème d'affichage ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    C'est bizar le code que je t'ai donné je l'utilise justement dans tous mes sites. Il sert justement à remplacer tous les caractères spéciaux par le code html qui leurs correspondent. J'ai justement dans le cadre de mon dernier site (site immobilier) un post dans lequel je renvoie un + (exemple: charges: edf + gdf) et il m'affiche bien le + grâce à ce code. Parc ontre je viens de me rendre compte je ne suis pas sûr que le + soit un caractère spécial.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 87
    Points
    87
    Par défaut
    Mon code est divisé en trois parties :


    Voici ma requête, je récupère au préalable la variable nom par le biais d'un POST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $request = "INSERT INTO matable (id,date,name,message) VALUES ('$id','$date','$nom','$message')";
    Ce que contient pas table à ce moment là en imaginant que l'utilisateur a saisi "salut + coucou" :

    => "salut + coucou"

    Ensuite, voici le code de l'affichage (qui se trouve sur une autre page par laquelle j'accède grâce à un lien :

    le lien en question : http://xxxxx/xxxxxx/xxx.php?nom=salut%20+%20coucou


    requête d'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $nom = $_GET["nom"];
    $request = "SELECT * from matable where name ='$nom'";
    Et à partir d'ici, j'obtiens "salut coucou" au lieu de "salut + coucou".


    Tout le code ci-dessus est bien entendu simplifié, il n'y a juste ce qui peut poser problème.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut ah
    Ah ok tu le passe en paramètre mais je comprends pas pourquoi tu n'utilise pas ta variable directement dans l'URL! Plut^to que d'écrire ton texte en brut.
    Essai comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://xxxxx/xxxxxx/xxx.php?nom=$message
    Parce que je pense que c'est ça qui pose problème le + dans une URL.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par biddal Voir le message
    Ah ok tu le passe en paramètre mais je comprends pas pourquoi tu n'utilise pas ta variable directement dans l'URL! Plut^to que d'écrire ton texte en brut.
    Essai comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://xxxxx/xxxxxx/xxx.php?nom=$message
    Parce que je pense que c'est ça qui pose problème le + dans une URL.
    Pardon, j'ai copié bêtement le lien, mais tu as raison, je le passe avec une variable...

    En ce qui concerne le bug, j'ai utilisé : addslashes et urlencode et le problème d'affichage est réglé.

    Par contre, lors de la saisie, si l'utilisateur entre : i_r"uk (par exemple), ce créée une erreur mais je pense que c'est une question d'encodage de caractères

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

Discussions similaires

  1. affichage de caractère spécial
    Par anisj1m dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 15/12/2007, 08h59
  2. Réponses: 4
    Dernier message: 10/04/2007, 11h10
  3. [SQL] Problème d'affichage de caractère spéciaux dans une variable chaîne
    Par Kryptonaute dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/08/2006, 08h40
  4. [SQL] Affichage résultat requête dans un tableau, bouton affichage page
    Par megapacman dans le forum PHP & Base de données
    Réponses: 35
    Dernier message: 18/05/2006, 16h42
  5. affichage requête sql sous phppgadmin
    Par kerzut dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 25/02/2005, 12h39

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