0

J'ai une valeur qui doit être définie dans le formulaire pour le traitement, mais je ne veux pas que l'utilisateur puisse éditer cette valeur. Un élément caché répondra principalement à mes besoins, mais je crains qu'un utilisateur intelligent puisse activer le champ caché et le changer.Comment rendre un tag Zend_Form_Element_Hidden immuable?

Y a-t-il un validateur ou un paramètre sur l'élément Hidden qui nécessiterait que la valeur de formulaire soumise soit la même que lorsque le formulaire a été rendu?

Je ne pense pas setIgnore(true) correspond à ma situation, car j'ai besoin de Zend_Form pour lire cette variable lors du traitement du formulaire.

Pour autant que je sache, le setAttrib('readonly', true) ne fonctionnera pas non plus car il s'agit simplement d'un paramètre HTML qui peut facilement être remplacé par le client.

Répondre

1

Vous ne pouvez pas compter sur des données renvoyées par un utilisateur. Même s'il y avait un moyen magique de contrôler le formulaire, quelqu'un pourrait encore forger une requête POST à ​​votre URL de soumission avec une valeur différente pour ce champ s'ils le souhaitent. Votre meilleur pari serait probablement de stocker la valeur dans la session à la place, ou au moins stocker la valeur dans la session et le comparer à la valeur de champ caché soumis.

+0

J'espérais que Zend Framework avait un élément magique qui me permettrait de le définir (plutôt que d'utiliser une variable de session). Je pense que vous avez raison, je vais juste devoir m'assurer que la variable POST'd est saine. –