Encodage smiley

delaville81 Messages postés 209 Statut Membre -  
delaville81 Messages postés 209 Statut Membre -
Bonjour,
Je suis actuellement en train de développer un blog.
Pour le rendre un peu plus attrayant j'ai mis en place la possibilité d'insérer des smiley dans un <textarea>.
J'ai utilisé un script jQuery que j'ai trouvé (je ne sais plus où) et qui fonctionne. Les smileys d'affiche bien dans mon <textarea> mais en base de données les smileys sautent. Seul le texte est enregistré.

Les smileys sont écrits sous la forme : & # x 1F642 (sans les espaces)



Mon PHP
$sql_insert = "INSERT INTO sujet (id_user, date, texte_sujet) values (:id_user, :date, :texte_sujet)";
        $stmt = $pdo->prepare($sql_insert);
        
        $date_sujet = date("Y-m-d H:m:s");	
        $id_user = $_SESSION['id_user'];
        $text = $_POST['subject'];			
        $timeStamp = time();
        $nb = $stmt->execute(array(':id_user'=>$id_user, ':date'=>$date_sujet, ':texte_sujet'=>$text));	
        $last_id = $pdo->lastInsertId();


je cherche le moyen de pouvoir les enregistrer

Merci de votre aide

Configuration: Macintosh / Safari 12.1.1


--
Bien PHPment et MySQLment
Delaville

2 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Il n'est pas choquant que les smileys soient enregistrés sous cette forme.
    La question, c'est surtout lorsque tu affiches un texte issu de ta base, qu'est-ce que tu vois ? À l'écran, et dans le code source HTML de la page web ?

    Xavier
    0
  2. delaville81 Messages postés 209 Statut Membre
     
    Xavier,
    Merci de ta réponse.
    Dans la base et à l'écran je ne voie rien. les smileys ne passent pas à l'enregistrement.
    Le première image envoyée était ce que j'ai à l'écran quand je tape un texte.
    0
    1. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Et dans le code source HTML de ta page ?
      0
      1. delaville81 Messages postés 209 Statut Membre > Reivax962 Messages postés 3742 Statut Membre
         
        Vu que c n'est pas enregistré, je ne peux pas voir ce qui est inscrit

        <textarea class="textarea-subject" name="subject" id="subject" rows="3"></textarea>
        
        0
      2. Reivax962 Messages postés 3742 Statut Membre 1 011 > delaville81 Messages postés 209 Statut Membre
         
        Pardon j'avais mal compris cette phrase
        Les smileys sont écrits sous la forme : & # x 1F642 (sans les espaces) 
        , j'avais cru que tu voyais ça en base.

        Bon, du coup, avant ton insert, essaie de faire :
        echo "<pre>";
        print_r($text);
        echo "</pre>";

        et regarde ce qui s'affiche.

        Xavier
        0
      3. delaville81 Messages postés 209 Statut Membre > Reivax962 Messages postés 3742 Statut Membre
         
        Ca me retourne : Teste 🙂

        Teste est ce que j'avais écrit avant le smileys.

        J'avais testé de mette en dur la forme hexadécimale dans la BDD, il s'affiche bien
        0