Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonsoir à tous,
Pour mon second message (qui je l'espère obtiendra des réponses ), j'ai quelques questions à vous poser à propos de Zend_Form.
Tout d'abord, je crée mes éléments de cette façon :
$lastName = $form->createElement('text', 'lastName'); $lastNameReg = '/^[a-zA-Zéèàìòùôêçüöäë]{3,}$/i'; $lastName->addFilter($StripTags) ->addValidator('StringLength', true, array(3,40)) ->addValidator('regex', true, array($lastNameReg)) ->setAttrib('class', 'champs') ->setAttrib('id', 'FieldLastName') ->setValue('Indiquez votre nom') ->setRequired(true);
Ma première question serait de savoir si le filtre est suffisant pour éviter les injections SQL et html ?
Ensuite, lorsque le formulaire n'est pas valide, j'utilise la méthode populate() pour réaffecter les valeurs dans le formulaire, cependant, je voudrais obtenir les valeurs non filtrées, car, par exemple pour le nom, si je met o' connor (bah oui pourquoi pas ) il me réecrit o\' connor dans mon champs.
J'ai tenté un :
$form->populate($formData->getUnfilteredValues());
mais il me renvoi toujours les valeurs filtrées.
J'ai trouvé ça, dans un autre sujet :
echo "<pre>"; print_r($formData->getValues()); print_r($formData->getUnfilteredValues()); echo "</pre>";
les deux print_r() m'affiche bel et bien les mêmes choses.
Quelqu'un aurait-il une idée s'il vous plaît ?
Bonne soirée
Dernière modification par emishi (06-02-2010 18:28:26)
Hors ligne
Alors injection sql => utilise des requete préparé et la question ne se pose plus du tout et plus jamais ... filtré ou pas
pour "l'injection" html, là cela dépends du traitement d'affichage ...
Hors ligne
Bonjour Grummfy, je te remercie pour ta réponse.
Je vais regarder ça pour les requêtes préparées.
Pour l'injection html, tu parles du traitement d'affichage. Cela signifie que pour toi, il faut mieux protéger sa donnée en la récupérant de la base plutôt qu'en l'y insérant ?
Si je protège exclusivement les injections SQL par requêtes préparées, qu'en est-il par exemple de l'utilisation de quelque chose comme Zend_Validate_NoRecordDbExists ?
Pour en revenir au getUnfiltredValues, comment celui-ci fonctionne-t-il ?
Bonne journée
Hors ligne
C'est open source (et PHP ) donc tu peux aller vérifier toi-même comment fonctionne Zend_Validate_NoRecordDbExists ou getUnfiltredValues...
Pour tes valeurs non filtré, prend $_POST
Hors ligne
Bonjour 3uclide, merci pour ta réponse.
Le $_POST me renvoi aussi les valeurs filtrés, c'est bizarre.
Enfin bon, PHP open source, donc vais effectivement essayer de me débrouiller tout seul
Hors ligne
Pages: 1