65 vues
[Résolu] Problème encodage
SwoOn

8 sujets, 41 réponses

Message non lu
Bonjour,

je débute en php / mysql, j'avoue, mais en suivant quelques tutos je suis arrivé à faire quelques trucs qui me conviennent.
Mais là ça fait 3 plombes que je tourne en rond sur l'encodage ....
Pour résumé : j'ai fait un petit formulaire qui envoie mes infos dans une base de donnée mysql, tout est codé en utf-8.
Quand je teste sur une page lambda, pas de soucis ça fonctionne bien, par contre quand je fais a même en passant par le widget de neofrag (dans index.tpl.php)
là gros soucis de code. Je peux pas vous envoyer de lien du site vu qu'il n'est pas en ligne je fais ça sous wamp. Mais voilà ce que ça donne :

Voilà la table que j'ai crée :


Lorsque je rentre quelques données :

Si je teste sur une page lambda php avec en en-tete :

<meta charset="UTF-8">

j'ai :



et en passant par Neofrag :



J'ai essayé pas mal de truc mais là, je suis coincé ou alors je suis vraiment une quiche !
2 participants
10 réponses
Zaekof

38 sujets, 883 réponses

Contributeurs Donateurs
Message non lu
ta essayé d'encodé en "ISO-8859-1" ?
"N'arrêtez jamais d'apprendre" !
SwoOn

8 sujets, 41 réponses

Message non lu
Euh non !

Tu veux dire sur *.php ? En mode édition ou dans labase de donnée ?
ou les 2 ?
SwoOn

8 sujets, 41 réponses

Message non lu
Bon j'ai essayé de tout ré encoder en "ISO-8859-1", pas mieux :(
Zaekof

38 sujets, 883 réponses

Contributeurs Donateurs
Message non lu
Désolé j'avais pas vu ton msg, euh si ta essayé et que c'est pas mieux alors le problème viens du php, comment tu encode tes donnés pour les stocker dans ta bdd ?

Au pire envoi moi le code en pv.
"N'arrêtez jamais d'apprendre" !
SwoOn

8 sujets, 41 réponses

Message non lu
pas de soucis !! Je cherche de mon côté aussi !

En pv ? Ou pj ?
SwoOn

8 sujets, 41 réponses

Message non lu
Bon j'avance un peu !
Si je mets un texte avec accent dans mon fichier php codé en ISO-8859-1, le "à" dans la variable $Date est bien transcrit dans la table mysql et du coup il apparait nickel dans le site neofrag.

Par contre, les infos récupérées par mon formulaire ne gèrent pas les accents et donc ne s'affichent pas correctement dans la table. Un bout de code :

<label for=coach_1>Coach</label>
<input id=coach_1 name="Captain_1" type="text" placeholder="Nom du Coach" required>

...
<?php
setlocale(LC_TIME, 'fra_fra');
if(isset($_POST['valider'])){
$Coach_1=$_POST['Captain_1'];
...
$Date=strftime('%A %d %B à %H:%M');

$base = @mysql_connect ('localhost', 'root', '') ;
mysql_select_db ('ovalie', $base) ;
$Id_max = mysql_result(mysql_query('SELECT max(id) FROM scores'),0,"max(Id)")+1;
$sql = 'INSERT INTO scores
VALUES("'.$Id_max.'","'.$Coach_1.'","'.$Equipe_1.'","'.$Score_1.'","'.$Coach_2.'","'.$Equipe_2.'",
"'.$Score_2.'","'.$Competition.'","'.$Playoffs.'","'.$Date.'")';

mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

mysql_close();
echo '<SCRIPT>javascript:parent.opener.location.reload();window.close();</SCRIPT>';
}
?>

damned !
Zaekof

38 sujets, 883 réponses

Contributeurs Donateurs
Message non lu
oui j'ai vue la même chose en local hier soir, a tu essayé a la connexion avec ta bdd, tu peux rajouter cette ligne : mysql_query("SET NAMES UTF8"); ou $taconnexionbdd->exec("SET CHARACTER SET utf8"); apres tu peut modifier le nom de l'encodage bien sur, mais de mon coté je trouve pas de solution avec le formulaire ou peut être qu'il faudrait créer une function genre $test .= 'charset=iso-8859-1' ;
puis l'intégré dans le msg de ta bdd
"N'arrêtez jamais d'apprendre" !
SwoOn

8 sujets, 41 réponses

Message non lu
Magique !

Avec mysql_query("SET NAMES UTF8"); juste après la connexion, tout roule !

Un grand merci pour le temps passé, par contre il me semblait l'avoir testé cette commande, j'avais surement du mal la placer !
En tout cas merci bcp.
Zaekof

38 sujets, 883 réponses

Contributeurs Donateurs
Message non lu
pas de soucie un plaisir !
"N'arrêtez jamais d'apprendre" !
SwoOn

8 sujets, 41 réponses

Message non lu
Je mets un petit message de plus, avec les commandes "mysqli" pas besoins de mettre en UTF-8
Ca marche tout nickel !