Le chinois et l'insertion mysql + regex

Le chinois et l'insertion mysql + regex - PHP - Programmation

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.

Reply

Marsh Posté le 25-06-2007 à 15:39:34   

Reply

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

Message cité 1 fois
Message édité par CyberDenix le 27-06-2007 à 14:45:33

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 27-06-2007 à 15:22:36    

CyberDenix a écrit :

Avant chaque requête
SET NAMES 'utf8'


 
Pas besoin de le faire avant chaque requête : une seule fois au moment de la connexion ça suffit.


---------------
When it's from Finland it's good.  - Mon blog
Reply

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

Reply

Marsh Posté le 05-07-2007 à 20:24:05    

Merci de cette précision cgo2.  :jap:  
 
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.


Message édité par CyberDenix le 05-07-2007 à 20:25:00

---------------
Directeur Technique (CTO)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed