View Issue Details

IDProjectCategoryView StatusLast Update
0000281Adventure PHP FrameworkNeues Feature // New Featurepublic2016-01-09 10:00
Reportert-thaloAssigned ToChristianAchatz 
PrioritynormalSeverityfeatureReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.0.2 
Target Version3.1Fixed in Version3.1 
Summary0000281: URL-Parameter im action-Attribut sollen bei GET-Formularen mit überliefert werden
DescriptionDa vorhandene URL-Parameter bei GET-Formularen durch die Formular-Komponenten überschrieben werden, soll die APF-Formular-Implementierung so erweitert werden, dass im action-Attribut vorhandene URL-Parameter automatisch als Hidden-Felder an das Formular angehängt werden.

Das Verhalten soll per Formular-Attribut an- und aus-schaltbar sein.
Additional InformationUrsprünglicher Titel: Form-Methode GET überschreibt Querystring
Ursprüngliche Beschreibung: Die GET-Methode überschreibt den URL-Query
Tagsform
Codereferenz: ([Datei]:[Zeile])
Namespacetools

Activities

ChristianAchatz

2015-12-10 23:53

administrator   ~0000649

Hallo Thalo,

magst du ein kurzes Beispiel zum Nachvollziehen posten? Ich denke zu wissen, was das Problem in deinem Anwendungsfall ist, möchte jedoch sicher gehen, dass wir vom Gleichen sprechen.

Danke! :)

t-thalo

2015-12-12 17:34

reporter   ~0000650

Last edited: 2015-12-12 17:46

View 2 revisions

Hallo,

anders als bei POST wird bei GET der Querystring nicht aus der Form-Action in die URL übernommen, dass man immer im initial Template landet.


Einzige Möglichkeit ist bei Method = GET den Querystring in hidden-inputs zu übernehmen.

Hier wäre es schön wenn man einzelne Parameter includen/excluden kann (so wie in POST mit anpassen der Form-Action).

ChristianAchatz

2015-12-14 11:05

administrator   ~0000651

Hallo Thalo,

verstehe ich richtig, dass ein

/?page=foo

als action in einem Formular "verloren" geht, wenn du

<form method="get">
   <!-- was auch immer -->
</form>

abschickst?

Ich habe das noch nicht ausprobiert, würde mich allerdings etwas wundern. Nachvollziehbar ist natürlich, dass der Parameter "page" überschrieben wird, wenn du ein Feld in einem Formular hast, das genau so heißt.

Magst du mal ein kurzes Code-Beispiel posten?

t-thalo

2015-12-14 14:21

reporter   ~0000652

Last edited: 2015-12-14 18:12

View 3 revisions

Hallo Doc,

du hast es schon richtig verstanden.

<form method="get" action="index.php?page=example">
<input name="foo">
<input type="submit" name="bar" value="go">
</form>

gesendete Parameter:

bar go
foo test


Laut HTML5-Specs:

Let destination be a new URL that is equal to the action except that its component is replaced by query (adding a U+003F QUESTION MARK character (?) if appropriate).

Ist das nun ein Bug oder ein Feature des APF?

ChristianAchatz

2015-12-18 14:52

administrator   ~0000653

Hallo Thalo,

ich habe mir die entsprechende HTML 5 Spezifikation angesehen und das Verhalten ist in der Tat so gewünscht. Der Browser soll im Fall einer GET-Anfrage den Query-Teil verwerfen und die Inhalte des Formulars entsprechend an die URI anhängen.

Eine gute Beschreibung dazu habe ich unter http://www.w3.org/TR/2011/WD-html5-20110525/association-of-controls-and-forms.html#form-submission-algorithm gefunden, auf http://stackoverflow.com/questions/1116019/submitting-a-get-form-with-query-string-params-and-hidden-params-disappear wird das Thema ausführlich diskutiert.

Damit bleibt dir bei einem GET nur die Möglichkeit den oder die Parameter als Hidden-Felder zu übernehmen oder POST zu nutzen. Geht es um die Verarbeitung von persönlichen Daten ist POST ohnehin vorzuziehen, da die URLs in der Browser-History auftauchen und damit in einem GET-Request nicht sicher sind - unabhängig natürlich von der verschlüsselten Übertragung durch HTTPS.

Mit deinem Einverständnis würde ich den Bug damit schließen.

t-thalo

2015-12-18 16:25

reporter   ~0000654

Last edited: 2015-12-18 16:26

View 2 revisions

Hi Doc,

die HTML5-Spec habe ich dir doch oben zitiert. IMHO sollte das APF den Querystring aber automatisch in hidden-inputs übernehmen damit die Funktionsweise der Form-Tag sich konsequent verhält unabhängig davon ob GET oder POST.

OOTB ist doch bei GET der Form-Tag mit Validatoren/Filter nicht nutzbar.

Frage ist ob Bug oder Feature.

ChristianAchatz

2015-12-21 10:16

administrator   ~0000655

Hallo Thalo,

ich gebe dir Recht, das wäre sicher ein nettes Feature für das APF. Ich wandle das Thema in einen Feature-Request zur Umsetzung mit 3.1 bzw. 3.2.

> OOTB ist doch bei GET der Form-Tag mit Validatoren/Filter nicht nutzbar.
Warum siehst du das so? Die Validierung bzw. Filterung ist doch nicht abhängig von der Request-Methode, sondern vom Event eines Button-Klicks (und natürlich einem vorhandenen Filter/Validator). Buttons lösen auch bei GET ein Klick-Event aus.

ChristianAchatz

2016-01-09 09:22

administrator   ~0000657

Last edited: 2016-01-09 09:22

View 2 revisions

Implementation done. Changes now available under https://github.com/AdventurePHP/code/commit/07f61085ee3564fa3c223b307e34aeae405f0c6a.

ChristianAchatz

2016-01-09 10:00

administrator   ~0000658

Documentation done. Changes now available under https://github.com/AdventurePHP/docs/commit/a8d62b22f326b53269f1cd91cf4abb3a000c8c88.

Issue History

Date Modified Username Field Change
2015-12-10 22:10 t-thalo New Issue
2015-12-10 23:53 ChristianAchatz Note Added: 0000649
2015-12-12 17:34 t-thalo Note Added: 0000650
2015-12-12 17:46 t-thalo Note Edited: 0000650 View Revisions
2015-12-14 00:31 t-thalo Tag Attached: form
2015-12-14 11:05 ChristianAchatz Note Added: 0000651
2015-12-14 14:21 t-thalo Note Added: 0000652
2015-12-14 14:29 t-thalo Note Edited: 0000652 View Revisions
2015-12-14 18:12 t-thalo Note Edited: 0000652 View Revisions
2015-12-18 14:52 ChristianAchatz Note Added: 0000653
2015-12-18 16:25 t-thalo Note Added: 0000654
2015-12-18 16:26 t-thalo Note Edited: 0000654 View Revisions
2015-12-21 10:16 ChristianAchatz Note Added: 0000655
2015-12-21 10:20 ChristianAchatz Namespace none => tools
2015-12-21 10:20 ChristianAchatz Severity minor => feature
2015-12-21 10:20 ChristianAchatz Category Bug => Neues Feature // New Feature
2015-12-21 10:20 ChristianAchatz Target Version => 3.1
2015-12-21 10:20 ChristianAchatz Summary Form-Method GET überschreibt Querystring => URL-Parameter im action-Attribut sollen bei GET-Formularen mit überliefert werden
2015-12-21 10:20 ChristianAchatz Description Updated View Revisions
2015-12-21 10:20 ChristianAchatz Additional Information Updated View Revisions
2015-12-28 08:31 ChristianAchatz Assigned To => ChristianAchatz
2015-12-28 08:31 ChristianAchatz Status new => assigned
2016-01-09 09:22 ChristianAchatz Note Added: 0000657
2016-01-09 09:22 ChristianAchatz Note Edited: 0000657 View Revisions
2016-01-09 10:00 ChristianAchatz Note Added: 0000658
2016-01-09 10:00 ChristianAchatz Status assigned => resolved
2016-01-09 10:00 ChristianAchatz Fixed in Version => 3.1
2016-01-09 10:00 ChristianAchatz Resolution open => fixed