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 :

Transformation inattendue de mes apostrophes en simple-quote


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2005
    Messages : 70
    Par défaut Transformation inattendue de mes apostrophes en simple-quote
    Bonjour à tous.

    Contexte : Je suis sur un site web avec base de données mysql, php, etc.... Diverses fiches (forms) sont à saisir, avec potentiellement des apostrophes dans les champs texte.

    D'un bout à l'autre de la chaîne de production du site (csv, db phpmyadmin, champs mysql, meta html, en-têtes javascript...) TOUT est codé en UTF-8 (unicode_ci).

    La séquence de traitement d'une saisie est simple et courte : 1) saisie manuelle => 2) contrôles JS => 3) submit si OK 4) => réception d'un $_POST dans mon PHP.

    Voici le mystère : dans les contrôles JS je transforme tous les "simple-quote" (code ASCII 39) en "right single quotation mark" (code UTF-8 U+2019 HTML &#8217). Autrement dit : je remplace chaque apostrophe "simple" en apostrophe "littéraire" (c plus joli). Ceci par une commande JS : data = data.replace ("'","’")

    En sortie de JS mes tests et le visuel me confirment que la transformation a bien été effectuée. Une poignée de millisecondes plus tard je récupère le $_POST entrant en PHP : un simple test me montre que mes apostrophes "littéraires" ont été re-transformées en simple-quote (code ASCII 39).

    Là.... je sais plus koi faire ! Une idée ?

    Merci à tous

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Question bête : est-ce que la transformation JS est bien faite sur les données qui partent vers le serveur ? Un bout de code pourrait aussi nous aider.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2005
    Messages : 70
    Par défaut
    Merci de ta réaction ! La réponse est OUI : en effet le JS qui modifie l'apostrophe a pour rôle général de vérifier la conformité des champs saisis, via un ensemble de PREG. Quand je teste cette histoire d'apostrophe, je modifie AUSSI le reste du champ. Je saisis par exemple alternativement "O’Connor", "O’Connos", "O’Connot" etc... toujours avec l'apostrophe "littéraire". Puis je valide la form [via un SUBMIT effectué en JS : window.document.submit () ] et enfin je teste le $_POST en entrée de mon script PHP. Je reçois alors : "O'Connor", "O'Connos", "O'Connot"... avec ma modif en fin de champ, mais avec l'éternelle apostrophe "simple-quote".

    Difficile de donner un code, mais je vais essayer de faire une page mixte JS/PHP se limitant au pb (...j'aurais d'ailleurs dû ! )

Discussions similaires

  1. Apostrophe et simple quote
    Par Freedolphin dans le forum Débuter
    Réponses: 0
    Dernier message: 15/05/2014, 09h41
  2. simple quote dans mes enregistrements
    Par pbatty1 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/04/2010, 14h58
  3. Réponses: 2
    Dernier message: 06/07/2009, 14h46
  4. [MySQL] transformer une simple quote en double pour un insert !!
    Par st0nky dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/01/2006, 16h38
  5. Probleme avec encodage de simple quote
    Par linkowich dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2005, 13h16

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