[Envoi & Récupération de données BDD PHP]

Michel -  
crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour !

J'espère que vous pourrez m'oter des doutes car j'ai certaines difficultés à comprendre certaines choses en PHP...

La dernière fois je developpais un formulaire en local avec un ecran de saisie de données, un fichier intermediaire permettant d'inserer les données envoyées dans une base de données et un autre ecran visant à afficher les données selon une requete donnée.

Il faut savoir que ça fonctionnait bien sur mon PC mais une fois mis en ligne sur mon hebergeur, certaines données s'affichaient mal, telles que :
exmple : "L'accent faisait défaut" --> il s'affichait "L/accente..."

Alors j'ai fais de multiples tests et finalement j'ai trouvé une aide, voici comme j'ai procédé..
----------------------------------------------------------

1. En entete je suis passé en UTF
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

2. Pour inserer les données dans la base de données, je les teste comme ceci :
$auteur = MyaddSlashes($_POST["FORM_MSG_AUTEUR"]);

function MyaddSlashes($chaine) {
if (get_magic_quotes_gpc()==0) {
return addslashes($chaine);
} else {
return $chaine;
}
}

3. Pour afficher les données aprés une requete de selection :
$auteur = htmlspecialchars(mysql_result($result, 0, 1));

----------------------------------------------------------------
Et là tout marche bien, à part une petite chose.

Lorsque je suis en ISO, si je tape directement mon code par exemple :
"Répondre à ce message", il n'y a pas de probleme puisque qu'il s'affiche bien "Répondre à ce message".
Par contre, vu que je suis passé en UTF, je suis obligé de taper en HTML, "R&eacute;pondre &agrave; ce message" pour qu'il m'affiche "Répondre à ce message"

----------------------------------------------------------------
Pourriez vous m'apporter une solution qui tourne en version ISO ?
Pourquoi dois en UTF, il ne reconnait pas "Répondre à ce message" mais seulement "R&eacute;pondre &agrave; ce message" ?
Quel interet de coder en UTF ?

Certes mon programme fonctionne mais je comprends pas tout alors ca me gene, si vous pouvez m'apporter votre aide...
A voir également:

2 réponses

crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   507
 
Salut,
Si tu veux faire tes pages en UTF8, utilise un éditeur de texte qui te permettent
d'enregister dans ce format.
L'avantage de l'utf8 c'est qu'il regroupe l'ensemble des iso 8859 dans un seul jeu
de caractère. L'ascii 7 bit ne présente pas de différence de codage (d'où le
fonctionnement correct des 'html entities').
Le souci c'est qu'en Europe et en particulier en France, on est un peu à la traine
et qu'on continue avec l'iso 8859-15 (et oui il faut bien le symbole euro).
Le 'gag' de l'utf8 pour les programmeurs c'est que la longeur de la chaîne de
caractères (nombre de caractères) ne correspond plus avec la taille de la zone
mémoire nécessaire au stockage de cette chaîne.
A+, crabs
0
Michel
 
Merci Crabs mais pour mes questions, as tu une explication...?
0
crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   507
 
Salut,
c'est ce que j'ai essayé de faire :
Question :
Pourriez vous m'apporter une solution qui tourne en version ISO ?
Pourquoi dois en UTF, il ne reconnait pas "Répondre à ce message" mais seulement "R&eacute;pondre &agrave; ce message" ?

Réponse :
Si tu veux faire tes pages en UTF8, utilise un éditeur de texte qui te permettent d'enregister dans ce format.
En un peu plus clair, si tu indiques que ton html est fait avec le charset utf8,
utilises un éditeur de texte qui permettent d'enregistrer ton texte en utf8
(sous Linux j'utilse kedit ou kate pour faire ça), ainsi tu pourras directement
coder les accents.

Sinon ton code avec les addslashes() ca fonctionne normalement en 8859-1.
Pour les entités, tu peux utlisé htmlentities en précisant le charset :
https://www.php.net/htmlentities

Pour les cotes et MySQL, tu peux toujours aller voir cet article :
http://www.crabs-world.com/2WEB/a1_apostrophe.php

0