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

jQuery Discussion :

Enregistrement emoticone dans base de données


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut Enregistrement emoticone dans base de données
    Bonjour, en saisissant une donnée sur tablette il est facile d'ajouter un émoticône dans un champ texte. Mais lorsque j'enregistre le texte tapé sur une BDD j'ai "????" (4 points d'interrogation) à la place de l'émoticône. Comment faut-il faire pour enregistrer fidèlement le message envoyé ? Merci d'avance

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Quel est le type du champ de ta base de donnée ?(texte, varchar...)

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    emoticon = BBCode ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Est-ce que les points d’interrogation sont le caractère ? précisément, ou est-ce qu’ils sont dans un losange ?

    Dans le premier cas, ça veut dire que l’émoticône est transformée automatiquement par l’application ; dans le second cas, c’est un problème d’encodage.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    bonjour, le champ du texte d'enregistrement est varchar 255. Et dans phpadmin je lis ? et non un losange, idem à l'affichage.

  6. #6
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Peux-tu nous montrer le code HTML de l’input (avec la commande Crtl+U de ton navigateur), ainsi que le code PHP qui traite la donnée envoyée ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    Bonjour,
    du coté PHP:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $qquestion = $db->sql_protege_chaine($_REQUEST["textareaqquestion"]);
    ...
    $sql="INSERT INTO `tblQCMadmin` (`numidqcmadmin`, `numidqcm`, `numeroQuestion`, `tps`, `textQ1`, `textQ2`, `textQ3`, `textQ4`, `reponse`, `qtext`, `repjustifier`, `qgraph`,`qquestion`, `typereponse`) VALUES (NULL, '$numidqcm', '$numeroQuestion', '$tps', '$textQ1', '$textQ2', '$textQ3', '$textQ4', '$reponse', '$qtext', '$repjustifier', '$qgraph','$qquestion','$typereponse');";
    $result = $db->sql_query($sql);
    ...
    et la fonction
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function sql_protege_chaine($chaine){
                    return mysqli_real_escape_string($this->db_connect_id,$chaine);
    }
    du coté html:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <textarea cols="40" rows="8" name="textareaqquestion" id="textareaqquestiona">Insérer la question</textarea>
    ...

    du coté javascript :
    Code JavaScript : 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
     
    $("#unqcm").submit(function(e){ 
        e.preventDefault(); 
        $(document).ajaxStart(function() {
        $("#reinitialiser_reponse").css({ 'color': "black" });
        $('#reinitialiser_reponse').text('Envoie en cours ...');});
        var donnees = $(this).serialize(); 
        $.ajax({
        	type: "POST",
        	url: "ajax_qcm.php",
        	data: donnees,
        	dataType: "text",
        	success: function(data) {$("#reinitialiser_reponse").css({ 'color': "red" });$('#reinitialiser_reponse').text(data);},
        	error: function() {$("#reinitialiser_reponse").css({ 'color': "red" });$('#reinitialiser_reponse').text('Une erreur est survenue !');}
        });
    });

  8. #8
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    J’ai supposé que tu voulais parler d’emojis mais, juste pour éviter un malentendu, c’est bien les emojis qui posent problème ?

    Je vais écarter l’hypothèse d’un problème côté client, car le code est relativement simple. De toute façon, Ajax envoie toujours les données en UTF-8, même si ce n’est pas l’encodage de la page.

    Côté serveur, je vois deux points sensibles qui pourraient être, l’un ou l’autre ou les deux, à l’origine du problème.

    Le premier c’est l’encodage par défaut supposé par la fonction mysqli_real_escape_string. Elle en a forcément un, et si tu ne l’as pas défini toi-même avec mysqli_set_charset, je te conseille de vérifier. Il doit être le même que celui de ta base.

    Le second point sensible est l’encodage de la base en lui-même. Si comme je le suppose, tu essaies d’insérer un emoji, il faut que ta base comprenne l’UTF-8 à 4 octets, et l’encodage nommé utf8 n’est pas suffisant. Il faut utiliser utf8mb4 (« mb » signifie multibyte).

    Si les données arrivent avec un encodage single byte (par exemple latin1) mais que la base interprète ça comme de l’UTF-8, les caractères en-dehors de la plage ASCII de base seront mal interprétés. C’est peut-être bien le serveur SQL lui-même qui remplace alors ce qu’il ne comprend pas par de simples ?.

    Attention si tu dois convertir l’encodage de ta base, car cette opération n’est pas anodine. Du tout. Tu risques d’en corrompre tout le contenu, et de voir apparaître des mojibake partout, ou au contraire ces fameux points d’interrogation dans des losanges.

    Fais une sauvegarde avant. Et fais une sauvegarde de ta sauvegarde.

    De ma propre expérience, ce qui m’a paru le plus sûr et simple, c’est d’exporter la base en choissant l’option « chaînes sous forme héxadécimale », puis de renommer l’ancienne base, puis de réimporter les données.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  9. #9
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    Bonjour, j'ai fait les changement mais rien pour l'instant.
    J'insiste pour dire que sur un ordinateur je n'ai rien pour insérer les emoticones ce n'est que ma tablette qui m'offre cette possibilité.
    J'ai ajouté cette ligne avant d'envoyer d'appeler le fichier ajax ajax_qcm.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert($('#textareaqtexta').val());
    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
     
    $("#unqcm").submit(function(e){ 
        e.preventDefault(); 
        $(document).ajaxStart(function() {
        $("#reinitialiser_reponse").css({ 'color': "black" });
        $('#reinitialiser_reponse').text('Réinitialisation en cours ...');});
        var donnees = $(this).serialize(); 
    	alert($('#textareaqtexta').val());
        $.ajax({
        	type: "POST",
        	url: "ajax_qcm.php",
        	data: donnees,
        	dataType: "text",
    		//window.location = document.referrer;
        	success: function(data) {$("#reinitialiser_reponse").css({ 'color': "red" });$('#reinitialiser_reponse').text(data);},
        	error: function() {$("#reinitialiser_reponse").css({ 'color': "red" });$('#reinitialiser_reponse').text('Une erreur de réinitialisation');}
        });
    });
    J'ai "????" à la place de l'emoticône.

  10. #10
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par radjiv97441 Voir le message
    J'ai "????" à la place de l'emoticône.
    Tu veux dire, dans le alert ou dans la réponse du serveur ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  11. #11
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    Dans l alert oui, ce n est pas normal non ?

  12. #12
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Non effectivement, ce n’est pas normal. Tu vois quoi quand tu fais ça :
    ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Tablette, insertion d'emoticone...

    Je pense que tu espère qu'une fonctionnalité native de ta tablette soit universelle ...
    Une emoticone est une image à moins que tu ne parles des emoticones du charset étendu ?
    Au quel cas, l'émoticone est une caractère de la police.
    Tu aurais donc un souci de charset de ta base de données ou de ta page ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  14. #14
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    Bonjour l alerte fait afficher un emoticone. J' iinsere ici un emoticone avec ma tablette :😀

  15. #15
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    L emoticone s'affiche sur le site de developpez.net . Je ne comprends pas, moi c est au niveau du client que j ai des points d interrogation sur mon site.

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    ton fichier php est en utf8 sans BOM ?
    tu as mis quoi comme balise Charset dans ton html ?
    Ta connexion à la basse aussi en utf8 ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par radjiv97441 Voir le message
    ...J'insere ici un emoticone avec ma tablette :😀
    Si je copie-colle cet emoji dans Word, il m'indique la police de caractères : "Segoe UI symbol" ou "Segoe UI emoji".
    C'est un caractère spécial, d'une police (font) particulière.

  18. #18
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Je n’arrive pas à reproduire.
    Code html : 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
    27
    28
    29
    30
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <meta charset="iso-8859-15" />
      <title>Test emoji encodage non UTF-8</title>
    </head>
    <body>
     
    <p>
      Copiez-collez l'emoji &#x1f600; dans la zone de texte ci-dessous,
      puis cliquez sur "examiner".
    </p>
     
    <p>
      <textarea id="zone"></textarea>
      <button id="exam">Examiner</button>
    </p>
     
    <script> "use strict";
     
    let $zone = document.querySelector("#zone");
    let $exam = document.querySelector("#exam");
     
    $exam.addEventListener("click", () => {
      alert($zone.value);
    });
     
    </script>
    </body>
    </html>
    Je pense que c’est un problème spécifique à la tablette.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  19. #19
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    Bonjour, d'après dreamweaver j'ai Unicode( UTF-8 ), à l’entête de mon html j'ai mis :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta charset="UTF-8" />

    J'ai fait ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <p><form name="test" id="test">
      <textarea id="zone1"></textarea>
      <textarea id="zone2"></textarea>
      <button type="submit">Transferer</button></form>
    </p>
    <script>
    $("#test").submit(function(e){ 
        e.preventDefault(); 
       $('#zone2').text($('#zone1').val());
       alert($('#zone1').val());
    });
    </script>
    Ce code affiche bien les émoticones avec la tablette. Donc c'est au niveau du transfert vers la base de données.
    Un texte du type "é & ç à" passe bien dans la bdd, que puis-je faire maintenant ?

  20. #20
    Invité
    Invité(e)
    Par défaut
    Ne plus utiliser ces emoticones.

Discussions similaires

  1. Problème Base de données et CRecordSet
    Par LE CHAKAL dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2002, 11h59
  2. connexion base de donné
    Par saidi dans le forum MFC
    Réponses: 3
    Dernier message: 07/08/2002, 22h22
  3. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  4. Bases de données
    Par dev dans le forum C++Builder
    Réponses: 4
    Dernier message: 01/07/2002, 22h55
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

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