[1.15] form: Name-Attribute nicht mehr vorhanden

Das Forum ist für das Melden von Bugs gedacht. // This forum is intended to report bugs with the APF.
Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

[1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von dave » 25.03.2012, 19:18:18

Hi zusammen,

im Moment bin ich dabei, eine andere Seite zu basteln. Dabei verwende ich das Modul "UMGT" sowie "kontakt4". Für das UMGT habe ich nun das Login-Formular eingebunden und für das kontakt4 das Kontaktformular.

Das Problem ist nun allerdings, dass, egal welches Formular abgesendet wird, beide Formulare bearbeitet werden und entsprechend für eines der beiden Formulare die Fehlermeldungen erzeugt werden. Im Quelltext fehlt für alle Formulare das "name"-Attribut. Wie kommt denn das zustande?

Code: Alles auswählen

<form class="umgt-fe-login" method="post" action="/business/?view=impressum">

Code: Alles auswählen

<form method="post" action="/business/?view=impressum">
Eine Config für Formulare gibt es ja nicht, oder habe ich da was verpasst?

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von Screeze » 26.03.2012, 10:26:30

Das APF ist auf Standardkonformität von XHTML ausgelegt. Und in XHTML ist das name Attribut des Formulars nicht standardkonform, und kommt deshalb nicht durch die Whitelist des APF.

Siehe auch:
http://www.w3schools.com/tags/tag_form.asp
In XHTML, the name attribute of the <form> tag is deprecated, and will be removed. Use the id attribute instead.

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von dave » 26.03.2012, 17:45:15

Aber seit wann ist das so? Das kann doch noch gar nicht lange sein. Ausserdem sind dadurch einige mitgelieferte Module nicht mehr funktionsfähig, was fürs APF ja sehr schlecht ist ...

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von dave » 29.03.2012, 21:38:15

Fehler gefunden! Scheint ein Bug zu sein, einfach mal weiter lesen ;)

Hi nochmal!

Ich bin nun seit zwei Tagen am Basteln bzw. dabei, das Problem genauer lokalisieren zu können. Hier mal meine Ergüsse ;)

Und zwar hatte ich das Problem, dass zwei unterschiedliche Formulare auf einer Seite nicht voneinader getrennt wurden. Es handelt sich dabei um das Login-Formular vom UMGT und das Kontakt-Forluar vom Modul kontakt4. Obwohl ich nur das Konatakt-Formualr abgeschickt habe, wurden mir Fehlermeldungen zum anderen Formular, dem Loginformular, ausgegebe, dass ich dieses nicht richtig ausgefüllt habe. Stimmt ja soweit auch, nur interessiert mich das nicht, da ich nur einen Kontakt absenden will und mich nicht einloggen möchte.

Nach einiger Suche habe ich dann den Fehler gefunden:
Beide Formulare verwenden den "gleichen Button":

Code: Alles auswählen

<form:button id="umgt-fe-login-send" name="send">
Und dadurch, dass beide Formulare den gleichen Button-Namen verwenden, werden beide Formulare als gesendet erachtet. Ich denke, dass ist ein allgemeiner Bug, der glücklicherweise noch nicht aufgefallen ist!? Ich umgehe das im Moment dadurch, jedem Button ein Anhängsel zu geben, welches ihn eindeutig macht. Nur bei den Modulen ist das durch ein Update ja wieder futsch ...

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von Screeze » 30.03.2012, 01:59:17

Ähm ja das stimmt, die Formulare brauchen definitiv Buttons mit anderem Name, da ja nur dieser als Kriterium verwendet wird um zu erkennen ob ein Formular abgeschickt wurde oder nicht...

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von dave » 30.03.2012, 15:41:08

Ok, die Namensänderung lässt sich einrichten und das kann ich auch gleich einchecken.

Nur allgemein die Frage: Sollte nicht anhand des Formularnamen + dem jeweiligen Button aus dem Formular unterschieden werden, ob es gesendet wurde und valide ist? Sonst wäre eine Angabe des Namen für ein form-Tag ja rein logisch unnötig, da es ja nichtmal standardkonform ist und nur für die Programmierung eine Rolle spielt.

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von TipTop » 30.03.2012, 16:11:59

dave hat geschrieben:Nur allgemein die Frage: Sollte nicht anhand des Formularnamen + dem jeweiligen Button aus dem Formular unterschieden werden, ob es gesendet wurde und valide ist?
Ja, das wäre sinnvoll. Dann müssten jetzt auch nicht alle name-Attribute der Submit-Button angepasst werden.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von Screeze » 30.03.2012, 16:16:26

Wenn du mir jetzt erzählst wie du das name Tag des Formulars in PHP auswerten willst?

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von Megger » 30.03.2012, 16:23:09

Ich denke da gibt es keine Möglichkeit, diese Information in PHP zu erhalten
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von TipTop » 30.03.2012, 16:37:54

Man könnte ein verstecktes Input-Element automatisch in jedes Formular einfügen. Das name-Attribut dieses versteckten Feldes erhält den Wert vom form-name-Attribut.

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von dave » 30.03.2012, 20:22:08

Naja, extra ein verstecktes Feld zu integrieren finde ich übertrieben ;).


Es ist doch so, dass das APF bereits nach dem Formular mit dem Namen sucht. Wenn es dieses im Dokument nicht findet, wird ja auch eine Exception geworfen. Leider kann ich die geneue Arbeitsweis des form-control nicht nachvollziehen ... aber lässt sich die Auswertung nicht in Verbindung mit dem form-name realisieren? DAs APF arbeitet ja damit ... und selbst wenn es nicht funktioniert, ist das kein Thema, man muss es eben nur wissen. Habe mir damit zwei Tage ein Ei gelegt :roll:

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von dave » 01.04.2012, 13:25:08

Für das Kontaktformular, den Login sowie die Registrierung habe ich nun unterschiedliche Namen angelegt und das ganze auch schon unter den Revisionen 1692 und 1693 eingecheckt ;)

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von Megger » 02.04.2012, 10:15:21

Das APF verwendet zwar den Namen um das Formular zu finden! Aber diese Information wird ja beim absenden des Formulars nicht mitgesendet, dadurch weißt du nicht, welches Formular gemeint ist und bist wieder genauso weit wie vorher
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von dave » 02.04.2012, 16:41:18

Ok, das wusste ich noch gar nicht. Ich werde da jetzt mal drauf achten und wenn ich weitere Konflikte sehe, werde ich die gleich anpassen.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: [1.15] form: Name-Attribute nicht mehr vorhanden

Beitrag von dr.e. » 09.04.2012, 18:14:31

Hallo zusammen,

der Effekt ist tatsächlich darauf zurückzuführen, dass mehrere Buttons in unterschiedlichen Formularen bei einem Request eines Formulars beide als geklickt markiert werden. Das ist jedoch meiner Ansicht nach Standard-Verhalten von HTTP bzw. einfach auf die Namensgleichheit zurückzuführen.

Lösen ließe sich das - ohne konkreter darüber nachgedacht zu haben - mit dem APF durch Hinzufügen einer Formular-ID, die eindeutig auf das eigene Formular rückauflösbar sein muss. Beispiel des zugehörigen Quelltextes:

Code: Alles auswählen

<form id="..."[ name="bla"]> // <-- das name-Attribut wird nicht in den Quelltext gerendert, ist nur zur Verdeutlichung 
   ...
   <input type="submit" name="send" value="..." />
   <input type="hidden" name="bla-form-id" value="098765456789098765" />
</form>
Der Button prüft dann an Hand des Namens des Formulars und dem zugehörigen Hidden-Feld ob der Button zu seinem Formular gehört.

Die Änderung sollte keinen größeren Aufwand in der Implementierung bieten, jedoch den Effekt - ich würde es nicht unbedingt einen Bug nennen - beseitigen. Seht ihr bei dieser Vorgehensweise irgendwelche Seiteneffekte?

@dave: Vielen Dank für deine Korrekturen am UMGT und den übrigen Modulen! :)
Viele Grüße,
Christian

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast