1. ✅ Apprenez une METHODE qui marche pour votre SEO ! Formation à distance avec Olivier Duffez et Fabien Facériès + aide pour prise en charge du financement
    Rejeter la notice

Problème insert MYSQL avec accent

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par passion, 24 Mai 2013.

  1. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 805
    J'aime reçus:
    153
    Bonjour,

    Je suis un peu perdu là, j'aurai besoin de vos lumières parce qu'à force d'être dessus, je ne vois plus... 8O

    Voilà, je viens de faire la migration d'un site d'un serveur dédié DEBIAN squeeze 6.0 vers un serveur DEBIAN WHEEZY 7.0.
    Je ne comprends pas car j'ai vraiment essayé de garder les mêmes caractéristiques du serveur MYSQL et PHPMYADMIN pour que la migration se passe bien mais pas au moment de tester le site en ajoutant un article :(

    En faite, dès l'instant que je vais mettre un mot avec accent, le champ de ma table restera vide.

    Voici mes caractéristiques:
    1/ Ma config apache ancienne et nouvelle est en : iso-8859-1
    2/ mes pages sont (meta http-equiv="content-type" content="text/html; charset=iso-8859-1")
    3/ la fonction que j'utilise avant de faire un ajout en base de données:
    Code:
    <?php
    public function textLibre($element){
    	$element1 = htmlentities ($element, ENT_QUOTES);
    	$element2 = stripslashes($element1);
    	$element2 = trim($element2);
    	return $element2;
    }
    }
    ?>
    
    4/ En suite, pour ma table : le moteur (MyISAM) et le charset : (latin1_swedish_ci)

    PS1 : je précise qu'avant la migration et depuis plusieurs années, cela a toujours marché et c'est uniquement depuis cette migration.
    PS2 : en faite, mon insertion se passe bien tant que je ne mets pas de mots avec accent.
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Encore cette légende urbaine d'enregistrer les entités HTML dans la DB (htmlentities lors du save => FAIL)...
    Et si tu copies/colles ta query générée dans ton client MySQL préféré, ça donne ?
     
  3. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 805
    J'aime reçus:
    153
    Merci de ta réponse :)

    Bah en faite, j'ai créé volontairement une erreur dans mon script PHP pour qu'elle puisse me générer une erreur visible, justement pour voir quelle type de requête, je m'apprête à faire et bah... c'est là, que je ne pige pas... 8O

    Si je mets exemple : [bonjour] => ça passe. Maintenant si je mets : [as-tu été à l'école?] ==> ma variable POST sera vide??!!

    Donc cela vient obligatoirement de ma fonction mais pourquoi??
    Je ne fais rien extraordinaire?
    Cela a toujours fonctionné?!

    Est-ce un module spécifique qui n'est pas activé sur apache2?
    J'ai l'impression, c'est une histoire de caractères spéciaux mais traités PHP pas MYSQL puisque c'est ma variable POST qui ne récupère pas les données!
    Merci
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Et tu peux nous montrer le code PHP d'insertion ? Afin de s'assurer de voir que tu échappes les données (mysql_real_escape_string() ou autre) ?
    Si ça tombe c'est juste ça, parce que par exemple avant tu avais les magic_quotes activées.

    Edit: ah carrément dans la variable $_POST ?
     
  5. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 805
    J'aime reçus:
    153
    lol oui... c'est ma variable POST qui ne récupère pas mes données issues de mon formulaire dès l'instant que je vais mettre des caractères spéciaux.

    J'ai créé une erreur dans mon script PHP pour qu'elle puisse me générer visuellement le type de requête que je m'apprête à faire.
    C'est là que je me suis aperçu que si je mets de simple mot sans accent, sans caractères spéciaux => ma variable concernée est ok mais sinon, la variable est vide??!!

    Je ne comprends pas en quoi ma fonction puisse merder?! :?
    Est-ce un module à activer dans apache2?
    Est-ce que cela vient de WHEEZY?
    Comprends pas??!!

    C'est vraiment une migration, je n'ai pas touché au code source!
     
  6. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Et dans Firebug ou le débogueur de Chrome, tu peux tout analyser, le request à l'air correct?
     
  7. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 805
    J'aime reçus:
    153
    Merci de ton aide :oops:

    Franchement, j'y comprends rien??!
    J'ai analysé mon php.ini si cela venait de là mais j'ai rien vu de particulier :(

    Avec firebug, il me précise bien les données issues de mon formulaire en POST, je te mets ce qui pourrait aider:
    Pour infos:
    Code:
    Content-Type	text/html; charset=iso-8859-1
    Date	Fri, 24 May 2013 16:53:50 GMT
    Expires	Thu, 19 Nov 1981 08:52:00 GMT
    Keep-Alive	timeout=5, max=100
    Pragma	no-cache
    Server	Apache/2.2.22 (Debian)
    Vary	Accept-Encoding
    X-Powered-By	PHP/5.4.4-14
    
    Maintenant, ce que me donne firebug:
    J'ai bien toutes mes données puisqu'il me précise [requiredD ==> c'est école].
    Le champ de mon formulaire "requiredD" passe bien mes données avec caractères spéciaux.
    Mais un simple:
    Code:
    <?php
    echo $_POST['requiredD'];
    ?>
    
    Affiche mes données avec ou sans caractères spéciaux!

    Maintenant, si j'utilise "htmlentities()", cela ne me renvoi plus rien !

    J'en déduis (je pense) qu'il y a un module ou une info qui ne doit pas être chargée sur apache ou php parce que là, c'est carrément une fonction de base qui n'a pas l'air d'être reconnue => "htmlentities()"

    Non?!
     
  8. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Je ne vois pas non plus comme ça, c'est bizarre :?
     
  9. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 805
    J'aime reçus:
    153
    Bon... mon problème avance...
    En faite, dans la doc PHP, l'encodage utilisé par php pour htmlentities est ISO-8859-1 pour les versions anterieur à PHP 5.4.0 et UTF-8 a partir de PHP 5.4.0.

    Donc la raison, je l'ai trouvé.

    La solution bourrin serait de rajouter une instruction dans mon htmlentities() de la sorte:
    Code:
    htmlentities($mavariable, ENT_QUOTES, 'iso-8859-1');
    J'ai testé, ça marche !

    Mais je préfèrerai choisir une méthode plus propre parce que je n'ai pas envie de passer sur tout mon code. Alors, j'ai modifié mon php.ini pour lui mettre:
    J'ai redémarré apache mais toujours le même problème?!
     
  10. atanalban
    atanalban Nouveau WRInaute
    Inscrit:
    30 Août 2012
    Messages:
    2
    J'aime reçus:
    0
    Bonjour

    j'ai le meme soucis, que j'avais solutionné une fois, c'est bien dans la config serveur pas la peine de tout reecrire ..
    je me souviens plus, est ce que tu as trouvé ?
     
Chargement...
Similar Threads - Problème insert MYSQL Forum Date
Google Shopping problème Insertion article Google : l'entreprise, les sites web, les services 18 Février 2012
Probleme bizzare d'insertion dans une base de donnée Développement d'un site Web ou d'une appli mobile 18 Août 2011
Problème d'insertion d'une balise DIV Développement d'un site Web ou d'une appli mobile 8 Juin 2011
Search Console Problème d'indexations de pages produits Crawl et indexation Google, sitemaps Aujourd'hui à 11:26
Search Console Probleme redirection nom de domaine et indexation google Crawl et indexation Google, sitemaps 16 Septembre 2020
Problème passerelle sur Prestashop e-commerce 8 Septembre 2020
Problème indexation Google desktop/mobile Problèmes de référencement spécifiques à vos sites 3 Septembre 2020
Search Console Problèmes chargements images Crawl et indexation Google, sitemaps 3 Septembre 2020
Problème de position sur 1 mot-clé (effet yo-yo) Problèmes de référencement spécifiques à vos sites 21 Août 2020
WordPress Problème Filtre Demandes d'avis et de conseils sur vos sites 15 Août 2020