{MySQL} Bloquage Accent.
pierlucm
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
dam75 Messages postés 1063 Date d'inscription Statut Webmaster Dernière intervention -
dam75 Messages postés 1063 Date d'inscription Statut Webmaster Dernière intervention -
Bonjour,
Je suis présentement en pleine construction d'une page de gestion pour mon site internet.
Cet page me permettera de modifier mon site très rapidement.
J'insert mes données dans ma base sql en utilisant 1 formulaire et une page d'insertion php.
Je récupère par la suite le texte pour l'afficher sur les pages respectives.
Tout fonctionne parfaitement j'éprouve seulement 1 petit problème avec les accents.
En premier lieux, je n'arrivais pas à faire afficher ceux-ci... J'ai régler en utilisant charset=iso-8859-1.
Maintenant, c'est lorsque j'essai de modifier mes données que cela ne fonctionne pas. (Si mon texte
ne comporte aucun accent je n'éprouve aucun problème).
Voici la ligne en question :
$sql = "UPDATE db_accueil SET data='$data' WHERE 1 ;";
Merci beaucoup,
pierlucm
Je suis présentement en pleine construction d'une page de gestion pour mon site internet.
Cet page me permettera de modifier mon site très rapidement.
J'insert mes données dans ma base sql en utilisant 1 formulaire et une page d'insertion php.
Je récupère par la suite le texte pour l'afficher sur les pages respectives.
Tout fonctionne parfaitement j'éprouve seulement 1 petit problème avec les accents.
En premier lieux, je n'arrivais pas à faire afficher ceux-ci... J'ai régler en utilisant charset=iso-8859-1.
Maintenant, c'est lorsque j'essai de modifier mes données que cela ne fonctionne pas. (Si mon texte
ne comporte aucun accent je n'éprouve aucun problème).
Voici la ligne en question :
$sql = "UPDATE db_accueil SET data='$data' WHERE 1 ;";
Merci beaucoup,
pierlucm
A voir également:
- {MySQL} Bloquage Accent.
- E accent minuscule - Guide
- Mysql community server - Télécharger - Bases de données
- U accent grave clavier ✓ - Forum Windows
- Comment faire un accent circonflexe sur un clavier azerty ✓ - Forum Clavier
- Comment mettre l'accent circonflexe sur e ou ✓ - Forum Réseaux sociaux
1 réponse
Bonjour,
Il y a plusieurs endroits où tu dois gérer le codage des caractères :
- le codage de la page HTML, défini par la fonction header(...) de PHP (ex : header('Content-Type: application/xhtml+xml; charset=iso-8859-1',true);) , ainsi que par la balise <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- le codage de la base de données, défini lors de la création des tables et des champs (voir la documentation de Mysql)
- le codage de la connexion au serveur Mysql, défini SET NAMES
Le mieux pour éviter les ennuis est que l'ensemble de ces paramètres soient tous mis à la même valeur, je te recommande UTF8, qui permet de gérer correctement l'ensemble des langues possibles (ce qui n'est pas le cas de iso-8859 !)
Par ailleurs sur ta requête $sql = "UPDATE db_accueil SET data='$data' WHERE 1 ;";
3 choses :
1/ Tu dois absolument "protéger" les chaînes via mysql_real_escape_string ou, au pire, mysql_escape_string. Sinon, le moindre ' dans la chaîne suffira à faire échouer la requête, sans compter les risques d'injection SQL (utilisation de cette faille pour faire passer une requête normalement interdite au système, je n'en dis pas plus :) )
2/ Normalement, et si tu respectes bien le point 1/, tu ne devras avoir besoin de rien.
Au pire, tu peux aussi forcer l'encodage via les fonctions PHP utf8_encode ou utf8_decode par exemple.
3/ Ca n'a rien à voir, mais tu es sûr de ton WHERE 1 ?? cela signifie que TOUS les enregistrements seront mis à jour, ce qui est rarement souhaité :)
Bon courage,
Il y a plusieurs endroits où tu dois gérer le codage des caractères :
- le codage de la page HTML, défini par la fonction header(...) de PHP (ex : header('Content-Type: application/xhtml+xml; charset=iso-8859-1',true);) , ainsi que par la balise <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- le codage de la base de données, défini lors de la création des tables et des champs (voir la documentation de Mysql)
- le codage de la connexion au serveur Mysql, défini SET NAMES
Le mieux pour éviter les ennuis est que l'ensemble de ces paramètres soient tous mis à la même valeur, je te recommande UTF8, qui permet de gérer correctement l'ensemble des langues possibles (ce qui n'est pas le cas de iso-8859 !)
Par ailleurs sur ta requête $sql = "UPDATE db_accueil SET data='$data' WHERE 1 ;";
3 choses :
1/ Tu dois absolument "protéger" les chaînes via mysql_real_escape_string ou, au pire, mysql_escape_string. Sinon, le moindre ' dans la chaîne suffira à faire échouer la requête, sans compter les risques d'injection SQL (utilisation de cette faille pour faire passer une requête normalement interdite au système, je n'en dis pas plus :) )
2/ Normalement, et si tu respectes bien le point 1/, tu ne devras avoir besoin de rien.
Au pire, tu peux aussi forcer l'encodage via les fonctions PHP utf8_encode ou utf8_decode par exemple.
3/ Ca n'a rien à voir, mais tu es sûr de ton WHERE 1 ?? cela signifie que TOUS les enregistrements seront mis à jour, ce qui est rarement souhaité :)
Bon courage,