Le chinois et l'insertion mysql + regex - PHP - Programmation
Marsh Posté le 27-06-2007 à 14:43:01
Tout doit être en UTF-8.
Fichiers
Format/Codage UTF-8, sans utiliser de BOM
>> Utiliser PsPad comme éditeur de texte (et abandonner NotePad++)
En-tête XML
<?xml version='1.0' encoding='UTF-8' standalone='no'>
En-tête HTTP
<meta http-equiv='Content-Type' content='application/xhtml+xml; charset=UTF-8'/>
Avant chaque requête
SET NAMES 'utf8'
Base de données
CREATE DATABASE `ma_base_de_donnees` CHARSET utf8 COLLATE utf8_unicode_ci
Marsh Posté le 27-06-2007 à 15:22:36
CyberDenix a écrit : Avant chaque requête |
Pas besoin de le faire avant chaque requête : une seule fois au moment de la connexion ça suffit.
Marsh Posté le 29-06-2007 à 07:26:17
Ah merci, ça fonctionne bien maintenant ^^
Et pour ce qui est de la vérification avec les regex ... est-ce possible ? Je voudrais éviter les injections sql sur mes champs qui doivent pouvoir accepter du chinois (hanzi) et des caractères occidentaux. Peux on utiliser le addslahes, le htmlentities ???
Merci
Marsh Posté le 05-07-2007 à 20:24:05
Merci de cette précision cgo2.
Certaines fonctions PHP ne peuvent pas fonctionner en UFT-8.
1) Regarde si les fonctions que tu veux utiliser travaillent avec de l'UTF-8. A priori ça ne devrait pas poser de problèmes maintenant que tes données en entrée sont en UTF-8 ?
2) Attends PHP6 qui sera full UTF-8.
Marsh Posté le 25-06-2007 à 15:39:34
Bonjour,
Je développe actuellement un site internet en chinois, qui fonctionnera avec PHP et MySQL, mon problème est le suivant :
Quand je récupère la valeur d'un champ de formulaire, par exemple le pseudo, comment puis-je vérifier qu'il s'agit bien d'un pseudo ? je connais les regex pour nos caractères occidentaux, mais avec les hanzi je ne sais pas comment faire, doit on également utiliser les htmlentities et addslashes ? D'autant plus que je dois pouvoir accepter non seulement les hanzis, mais aussi des caractères occidentaux, par exemple le pseudo : "李建33". Quelqu'un aurait-il des pistes ???
Pour infos, ma table en question est encodée en UTF8 unicode ci, je ne sais pas si c'est la bonne solution, mais ça à l'air de marcher (le seul problème est que dans la base sous phpmyadmin, tout apparait en codé), mais quand j'affiche ces données sur une page, aucun problème.
Donc mon problème se situe vraiment au niveau de l'insertion dans la base. (question de sécurité).
J'espère avoir été à peu près clair.
Merci d'avance pour votre aide.