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

AJAX Discussion :

[AJAX] Encodage avant INSERT


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Par défaut [AJAX] Encodage avant INSERT
    Bonjour, je me suis enfin mis au total utf8
    C'est a dire phpmyadmin est tous en utf8_unicode
    header charset utf8, meta utf8, set name utf8, la totale.

    En mode normal, avec reload de page (sans ajax) aucun soucis, tous mes caractere s'enregistre correctement en base, (JP,PL,FR, etc..., je fais juste un mysql_real_escape_string lors des insert ou update, rien a l'affichage tous est ok)

    En mode ajax (framework Jquery, requete ajax JSON)
    tous ce passe bien niveau affichage mais a l'enregistrement, il me met les caractere speciaux de la forme :

    "&#x30BB;" <= car avec jquery, suivant mes data envoyé, je dois faire un escape() pour qu'il n'y est pas de probleme (ce qui n'est guere derangeant)

    je recupere donc mes variable en php de la facon suivante pour les enregistrer en base:

    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
     
    $bio = ajaxRealEscapeString($_POST['yaEdit_bio']);
     
    ou ajaxRealEscapeString vaut :
     
    function ajaxRealEscapeString($txt) {
    return(secure_sql(ereg_replace("###","+",unicode_decode(utf8_encode($txt)))));//utf8 ok mais ajax pas bon
    }
     
    ou unicode_decode vaut :
     
    function unicode_decode($txt) {
     return(ereg_replace('%u([[:alnum:]]{4})', '&#x\1;',$txt));
    }
     
    (secure_sql c'est mysql_real_escape_string ou addslashes suivant le serv ;)
    Donc je voudrais savoir ce qu'il faut rajouter dans ma fonction "ajaxRealEscapeString" pour convertire les caractere de la forme "&#x30BB;" en leur vrai format, (je c'est pas comment sa s'appel mais genre pour le euros bas € est non "&#x20AC;"

    Si quelqu'un peut me donné un conseil je suis preneur merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Par défaut
    On m'a aider sur un autre de mes topic :
    j'apporte la solution :

    en ajax (jquery json), proteger les variable avec encodeURIcomponent()
    recuperé avec mysql_real_escape_string ou addslash en fonction du magic quote du serveur avant de fair l'insert

    et utilisé htmlspecialchars a l'affichage si ya des simple et double cote dans votre chaine la ou sa peu poser probleme genre un input prérempli voila

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/08/2006, 22h28
  2. Supprimer espace avant insertion dans état
    Par aCe_GiK dans le forum Access
    Réponses: 5
    Dernier message: 24/04/2006, 17h34
  3. Modification avant insertion
    Par KernelControl dans le forum Oracle
    Réponses: 2
    Dernier message: 21/12/2005, 13h54
  4. [MySQL] Vérification de doublons avant insertion
    Par Nicos77 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 09/12/2005, 13h37
  5. [MySQL] Vérification de la présence d'enregistrement avant insertion
    Par Odilon dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/09/2005, 15h30

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