Zend Form addFilter StripTags nicht Strippen tags
Ich brauche ein wenig Hilfe, clearing etwas mit Zend_Form und Filter hinzufügen, um ein element. Jetzt war ich unter dem Eindruck, dass, wenn Sie einen filter hinzufügen, der form, dass, wenn das Formular gebucht wird, der filter ausgeführt wurde als Teil der Versand in der Steuerung.
Jedoch beim testen meine form zu meinem Entsetzen die filter StripTags anscheinend nicht ausgeführt und ich erhalte die Daten mit der HTML-tags in den Daten.
Meine Form-element sieht wie folgt aus.
$address1 = new Zend_Form_Element_Textarea('address1');
$address1->addFilter('StripTags')
->addFilter('StringTrim')
->setAttrib('cols', 30)
->setAttrib('rows', 5)
->removeDecorator('DtDdWrapper')
->removeDecorator('label')
->removeDecorator('HtmlTag')
Aber wenn ich in der text-Bereich, der einige Daten mit html-tags und überprüfen Sie dann die form gültig ist mit
$formData = $this->_request->getPost();
if($form->isValid($formData){
...
Den Daten kommt auch wieder mit den tags. Es wird nur entfernt, wenn ich übergeben Sie die Daten über die strip_tags() Funktion.
Ich nehme an, meine Frage ist, sollte die StipTags filter wenn ja, warum nicht? Was vermisse ich hier.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du nicht den post-code an, wie man den Zugriff auf die Daten nach dem Aufruf von isValid. IIRC der Filter wird nur wirksam, wenn Sie den Zugriff auf die Daten über
$form->getValue('someElement')
oder etwas entlang jenen Linien.Sorry, ich weiß, ich bin spät, aber falls einer vor dem selben problem,
Ich habe vor heute dieses problem und ich fand einige Möglichkeiten, um dieses problem zu lösen:
ersten mein code ist:
Dies ist die form Klasse
Klasse Application_Form_UserForm extends Zend_Form
{
public function init()
{
}
}
Dies ist controller Klasse
class UserController extends Zend_Controller_Action{
Erste Lösung:
ich verwendet filter auf Formular-Elemente in der form-Klasse,
aber ich abgerufenen Daten aus $form Objekt im controller
als ich fand, dass die Methode
ändert sich nicht im $_POST-array Werte, so habe ich die Daten abgerufen von $form-Objekt und übergeben Sie es als array von Modell zu Modell.
Zweite Lösung:
ich habe versucht, Sie zum anwenden der filter auf die Werte in der Steuerung, nicht in form von erstellen-Objekt von filter-Klasse und gelten benötigte filter
Dritte Lösung:
ist die Methode
mit regex, die Auswirkungen auf die $_POST-Werte.