Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-07-2009 13:59:21

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Zend Form et les caractères spéciaux

Bonjour
Je remplis les champs d'un élément select à partir de ma base de données Postgresql codée en UTF8.

Code:

        $famille = new Zend_Form_Element_Select('famille');
        $famille->setLabel('Famille')
        ->addMultiOption('','')
        ->setRequired(true)
        ->addFilter('StripTags');
        $familles = new tbFamilles();
        $liste = $familles->fetchAll($familles->select()->order('famille'));
        foreach ($liste as $familles):
        $famille->addMultiOption($familles->famille,$familles->famille);
        endforeach;

Les caractères spéciaux ne s'affichent pas correctement.

Dernière modification par ziedb (20-07-2009 14:00:02)

Hors ligne

 

#2 20-07-2009 14:06:01

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Zend Form et les caractères spéciaux

ta vue est en utf 8 ?

Hors ligne

 

#3 20-07-2009 14:29:26

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Zend Form et les caractères spéciaux

Zend_Form utilise les fonctions mb_string si possible, donc ton serveur doit donc être bien configuré en UTF-8.
Plusieurs posts de nos forums abordent déjà ce point.

Hors ligne

 

#4 20-07-2009 15:37:35

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

Oui ma vue est en UTF8

$this->view->setEscape('utf8_encode');

Ma BD aussi.

Hors ligne

 

#5 20-07-2009 16:48:35

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Zend Form et les caractères spéciaux

Et ton serveur apache/php ?

Hors ligne

 

#6 20-07-2009 23:07:48

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

Quel paramètre faut-il vérifier?

Hors ligne

 

#7 21-07-2009 08:54:31

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Hors ligne

 

#8 21-07-2009 11:03:04

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

J'ai trouvé que ces paramètres sont désactivés

;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
;mbstring.internal_encoding = EUC-JP

; http input encoding.
;mbstring.http_input = auto

; http output encoding. mb_output_handler must be
; registered as output buffer to function
;mbstring.http_output = SJIS

Faut-il les activer?

Dernière modification par ziedb (21-07-2009 11:24:12)

Hors ligne

 

#9 17-08-2009 12:15:01

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

J'ai encore le même problème et j'ai une question supplémentaire :

Quand j'écris dans mon champ textarea 'Démarrage Nouvelle...'
Quand je fais la validation et que j'ai des erreurs, je fais lke truc classique un populate et je réffiche mes données j'obtiens dans mon champ

Code:

Démarrage Nouvelle...

Hors ligne

 

#10 19-08-2009 13:12:37

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

J'ai fait cette manip

Code:

// je récupère les données depuis la base sous forme de tableau

...
$data= $ma_table->getliste();
$form->populate($data);
...
$this->view->data=$data
$this->view->form=$form

Ensuite dans ma vue, je fait

Code:

print_r($this->data);
echo $this->form;

La première m'affiche bien les données du tableau en UTF8, par contre mon form n'affiche pas correctement les caractères spéciaux.


Avez-vous une idée sur le sujet, svp c'est vraiment urgent?


Entre autre, dans la définition de mon form, j'ai mis

Code:

$this->setEnctype('utf8_encode');

Est-ce que cette utilisation est juste? Normalement ça devrait résoudre le problème mais ça ne marche pas.

Hors ligne

 

#11 19-08-2009 13:19:11

aelyta1
Membre
Lieu: Rouen
Date d'inscription: 29-06-2009
Messages: 98

Re: Zend Form et les caractères spéciaux

Peut etre une piste de réponse http://www.z-f.fr/forum/viewtopic.php?id=783


veni, vidi, riendi
Vive les lapins-antilopes !

Hors ligne

 

#12 19-08-2009 14:20:21

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

J'ai essayé ça n'a pas marché

Hors ligne

 

#13 23-08-2009 11:29:53

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Zend Form et les caractères spéciaux

Hello,

entype != encoding

enctype : "multipart/form-data" | "application/x-www-form-urlencoded" | "text/plain"

Dans ton cas, c'est l'encodage des caractères qui ne va pas. Vraisemblablement, le lien fourni par aelyta1 devrait te renseigner.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#14 24-08-2009 08:56:14

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

mikaelkael a écrit:

Hello,

entype != encoding

enctype : "multipart/form-data" | "application/x-www-form-urlencoded" | "text/plain"

Dans ton cas, c'est l'encodage des caractères qui ne va pas. Vraisemblablement, le lien fourni par aelyta1 devrait te renseigner.

A+

Merci ça m'a échappé et pourtant je l'utilise déjà.
Je suis tellement stressé par ce problème.

J'ai essayé en fait d'appliquer ce qu'il y a dans le lien d'aelyta1 mais ça ne marche pas.
J'ai même changé mon wamp par Zend Server CE et ça ne marche pas!

Hors ligne

 

#15 31-08-2009 13:58:12

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

le module suivant apache est désactivé

Code:

#LoadModule charset_lite_module modules/mod_charset_lite.so

Ce module a t-il un impact sur mon problème?
A quoi ça sert exactement?
Merci

Hors ligne

 

#16 18-10-2009 22:35:56

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

Pour l'instant j'ai fait un simple filtre de remplacement.
Quelqu'un a-t-il une solution radicale?

Hors ligne

 

#17 19-10-2009 10:04:45

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Zend Form et les caractères spéciaux

Bien (re)configurer tout ton serveur qu'il soit bien en UTF-8 (aussi bien apache que php), tes base de données, l'encodage de chaque fichier en UTF-8 (sans BOM de préférence), ainsi que la sortie HTML.

Hors ligne

 

#18 16-11-2009 00:29:29

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

Voici le résumé de mon code , un truc très classique

Code:

if ($this->_request->isPost()) {
            $formdata = $this->_request->getPost ();
            if ($form->isValid($formdata)) {
// si les données sont valides , j'insère dans ma base de donnée
                $res = new mRessources();
                $res->nvRes($form->getValues());

                        
            }else {
//sinon, je fais un form populate et j'alerte l'utilisateur
                $form->populate($formdata);
                $this->view->message = 'Veuillez vérifier vos données.';
            }
        }

Point1 -
Dans le cas où les données sont valides, elles sont insérées correctement dans la base, y compris les caractères accentués. C'est la preuve que les caractères sont bien interprétés par mon formulaire et qu'il n'y a pas de distortion lors de la communication entre l'application et la base et que l'UTF 8 est bien configuré au niveau d'apache et de postgresql.
Par contre, lorsque je fais $form->populate($formdata), c'est juste à ce niveau là que les cacatères acentués sont mal affichés.

Point 2 -
Bien que j'utilise $db->quote($formdata['notes']) dans l'élaboration de mon statement, les apostrophes sont toujours précédées par des antislash '\'

exemple aujourd'hui devient aujourd\'hui

Pour vérifier, j'ai essayé d'afficher les données  directement récupérées de mon form. J'ai le même phénomène.

Hors ligne

 

#19 16-11-2009 11:15:09

nick
Membre
Date d'inscription: 31-05-2008
Messages: 84

Re: Zend Form et les caractères spéciaux

point 2:
regarde dans ton php.ini et désactive magic_quotes si c'est activé.

Hors ligne

 

#20 16-11-2009 14:22:37

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

nick a écrit:

point 2:
regarde dans ton php.ini et désactive magic_quotes si c'est activé.

Voici ma config

Code:

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

Si j'ai bien compris, il s'agit du premier paramètre qui gère les POST/GET/Cookie Data : il faut le mettre à OFF?

Hors ligne

 

#21 16-11-2009 14:39:40

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Zend Form et les caractères spéciaux

Oui, c'est bien ça.
A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#22 16-11-2009 21:00:33

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

Merci Nick et Philippe
ça marche bien pour le point 2.

Il me reste encore le point 1. J'ai tout fait ça me rend fou.

Hors ligne

 

#23 17-11-2009 09:07:28

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Zend Form et les caractères spéciaux

point 1. : "Veuillez vérifier vos données" s'affiche correctement ? Et si tu supprimais ton "populate", car il est déjà réalisé par l'action isValid au dessus


----
Gruiiik !

Hors ligne

 

#24 17-11-2009 09:59:09

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: Zend Form et les caractères spéciaux

nORKy a écrit:

point 1. : "Veuillez vérifier vos données" s'affiche correctement ?

Oui

nORKy a écrit:

Et si tu supprimais ton "populate", car il est déjà réalisé par l'action isValid au dessus

Non ça ne marche pas sad

Hors ligne

 

#25 17-11-2009 10:48:02

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Zend Form et les caractères spéciaux

ziedb a écrit:

nORKy a écrit:

point 1. : "Veuillez vérifier vos données" s'affiche correctement ?

Oui

nORKy a écrit:

Et si tu supprimais ton "populate", car il est déjà réalisé par l'action isValid au dessus

Non ça ne marche pas sad

t'as essayé de te pendre ?


----
Gruiiik !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages