8791 sujets

Développement web côté serveur, CMS

Bonjour à tous

J'ai un problème d'insertion de données dans une base MySQL.

Dans mon formulaire je saisis :
’'"éèàçâäùün°«»,.?

Après avoir transmis le résultat avec post
$texte_complet = $_POST['texte_complet'];

J'obtiens ça :
’\'\"éèàçâäùün°«»,.?

J'ai une fonction qui remplace ’ par ' (ou l'inverse)
$transformation = array("’" => "'"); ou $transformation = array("'" => "’");

Quand je transforme tout en ' j'obtient dans ma BDD
?\
Quand je transforme tout en ’ j'obtient des ? à la place de ’ dans ma BDD
??"éèàçâäùü°«»,.?

J'ai essayé de jouer avec
- strtr()
- stripslashes
- mysql_query("set names 'utf8'");
- mysql_real_escape_string()
- utf8_encode()
- utf8_decode
et rien ne marche Smiley fache

Par contre en insérant directement avec PHPMyAdmin, j'arrive à insérer sans aucun problème ma chaine de caractères.


Mon site web est configuré comme cà
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Mon code php commence par
header('Content-Type: text/html; charset=UTF-8');

ma base MySQL est en utf8_unicode_ci

J'ai passé des heures à tout essayer sans resultat probant ; Quelqu'un a une idée ?
Je precise que sur mon serveur
magic_quotes_gpc = on


Fichier INDEX.PHP
echo 'Texte complet';
echo '<textarea name="texte_complet" cols="80" rows="10" wrap=physical></textarea>';

que je recupère comme ca dans le fichier VERIFIE.PHP
$texte_complet = $_POST['texte_complet'];
Je ne m'y connais pas trop dans ce domaine la, mais peut-être que tu peux essayer en remplaçant tes ' par leurs codes ASCII ?
T'as essayé la fonction htmlentities ? généralement c'est la plus efficaces pour les passages en tables ^^