Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#26 17-11-2009 11:26:50

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

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

Je vais plutôt pendre Zend_FORM

Code:

$form->hang();
//hang=pendre

la syntaxe est-elle juste?

Hors ligne

 

#27 17-11-2009 20:40:59

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

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

Help!!! please

Hors ligne

 

#28 17-11-2009 21:23:55

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

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

Une fois de plus, je répète qu'il est complètement inutile de poster des "Helppppp !!!!!" ou encore "UP please"
Si personne réponds, c'est que personne n'a la réponse.
Dans ce cas, soit tu prends le temps de chercher plus en profondeur, soit tu reprends tout depuis le début.

Hors ligne

 

#29 18-11-2009 14:05:59

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

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

Désolé Mr MoOx, il faut comprendre ma situation.
Je suis bloqué, j'ai cherché dans tous les sens. J'ai lu plusieurs articles à titre d'exemple, je cite ce lien :
http://j-willette.developpez.com/tutori … e-en-utf8/
J'ai essayé de contourner le problème autrement mais à chaque fois, je suis confronté à une difficulté supplémentaire. Et là, je dois mettre mon projet en production très prochainement.
De plus, c'est un frum d'entraide. donc c'est normal de demander de l'Aide!

Dernière modification par ziedb (18-11-2009 14:43:25)

Hors ligne

 

#30 19-11-2009 00:02:35

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

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

1- J'ai enlevé mon $this->view->setEscape('utf8_encode');
2 - J'ai mis dans mon controleur $this->_response->setHeader('Content-Type', 'text/html; charset=utf-8');
3- J'a mis dans ma vue <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> (J'ai esayé sans cette ligne, ça ne change rien  car j'ai déjà fait le point1. Le résultat est le même)

Voici le code

Controleur

Code:

    public function newresAction() {
        .....    
        
        $form = new fmNewRes();
        
        if ($this->_request->isPost()) {
            $formdata = $this->_request->getPost ();
            if ($form->isValid($formdata)) {
                $res = new mRessources();
                $id = $res->nvRes($form->getValues());
                if ($id>0) {
                    $this->_redirect('/manage/ressources/resprev/idres/'.strval($id));
                }else {
                    $this->view->message = 'Impossible d\'intégrer les données dans la base. La ressource existerait déjà.' 
                            . 'Veuillez vérifier vos données.';
                                    }
                
            }else {
                $form->populate($formdata);
                $this->view->message = 'Veuillez vérifier vos données.';
            }
        }
        $this->view->form = $form;
        $this->_response->setHeader('Content-Type', 'text/html; charset=utf-8');
        
    }

Vue :

Code:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
...
echo $this->form;
...

Form

Code:

class fmNewRes extends Zend_Form {
    public function __construct($options=null) {
        parent::__construct($options);
        $this->setName('newres');

        $libelle =new Zend_Form_Element_Text('lib');
        $libelle->setLabel('Libellé')
                ->setRequired(true)
                ->addValidator('StringLength', false, array(5, 30));
        

        $Module =new Zend_Form_Element_Text('mod');
        $Module->setLabel('Module')
                ->setRequired(true)
                ->addFilters(array('StripTags'))

                ->addValidator('StringLength', false, array(5, 30))
                ->addValidator('Alpha');
        
        $Controleurs =new Zend_Form_Element_Text('cont');
        $Controleurs->setLabel('Contrôleur')
                ->setRequired(true)
                ->addFilters(array('StripTags','StringTolower'))

                ->addValidator('StringLength', false, array(5, 30))
                ->addValidator('Alpha');

        $actions =new Zend_Form_Element_Text('act');
        $actions->setLabel('Action')
                ->setRequired(true)
                ->addFilters(array('StripTags','StringTolower'))

                ->addValidator('StringLength', false, array(5, 30))
                ->addValidator('Alpha');
                
        $submit = new Zend_Form_Element_Submit('submit');
        $submit->setLabel('Ajouter Ressource')
        ->setRequired(false)
        ->setIgnore(true);

        $this->addElements(array($libelle,$Module,$Controleurs,$actions,$submit));    ;
    }
}?>

Le résultat obtenu est le suivant :
1- Les libélles avec des caractères spéciaux ne sont pas affichées correctements exp le é de Libellé est remplacé par un carré
2- Dans la cas d'un $form->populate, les éléments qui contiennet un filtre strtolower ne s'affichent pas correctement  exp : $controleurs, $actions
3- Seuls les éléments qui ne contiennet pas le filtre 'StringToLower' s'affichent correctement

Dernière modification par ziedb (19-11-2009 00:06:11)

Hors ligne

 

#31 19-11-2009 10:19:32

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

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

La plus part du temps, c'est l'entête Content-Type HTTP et non pas HTML que les navigateurs utilisent. Tu peux donc aussi vérifier tes entêtes HTTP


----
Gruiiik !

Hors ligne

 

#32 19-11-2009 10:24:36

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

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

Normalement c'est fait avec l'instruction suivante dans mon controleur :

Code:

$this->_response->setHeader('Content-Type', 'text/html; charset=utf-8');

Ou faut-il faire autrement?

Hors ligne

 

#33 19-11-2009 13:28:27

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

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

ziedb a écrit:

Normalement c'est fait avec l'instruction suivante dans mon controleur :

Code:

$this->_response->setHeader('Content-Type', 'text/html; charset=utf-8');

Ou faut-il faire autrement?

Excellente question.. Perso, j'utilise la conf d'apache
Test en telnet, tu verras bien si la valeur est correct

Code:

telnet localhost 80
GET / HTTP/1.1
host: localhost

Ou alors, si tu as firefox et la developper toolbar : information -> En-Têtes HTTP (réponse)


----
Gruiiik !

Hors ligne

 

#34 19-11-2009 13:52:22

osdave
Membre
Date d'inscription: 07-07-2009
Messages: 14

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

salut,
j'avais rencontré ce problême et je l'avais solutionné en metant ceci dans mon index.php:

Code:

setlocale(LC_CTYPE,'fr_FR.UTF-8');
iconv_set_encoding('internal_encoding', 'UTF-8');
iconv_set_encoding('output_encoding', 'UTF-8');
iconv_set_encoding('input_encoding', 'UTF-8');
header('Content-Type: text/html; charset=utf-8');

source: http://www.z-f.fr/forum/viewtopic.php?id=3132

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