Toon posts:

Gecombineerde post & get request

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik vroeg me af hoe legaal het is om een post en een get request te combineren. Dus in iets als:

HTML:
1
2
3
<form action="myact?par1=iets">
   <input name="par2" value="ook iets" />
</form>


Het viel me op de PHPBB dit doet als je geen cookies aan hebt staan, maar het nadeel is dat iniedergeval met firefox 1 op de 20 keer (random) firefox alleen de get parameters aan de server doorgeeft en niet de post parameters.

Nu heb ik zelf hiervoor een toepassing (in een javascript verander ik de action van een form en heb de noodzaak om 1 parameter toe te voegen). Dit zou dus via de gecombineerde post/get heel makkelijk kunnen, maar omdat het bij PHPBB dus onvoorspelbaar af en toe fout gaat vraag ik me af of dit wel legale HTML is.

  • Daedalus
  • Registratie: Mei 2002
  • Niet online

Daedalus

Moderator Apple Talk

Keep tryin'

Als je method="post" aan je form tag toevoegt zou het moeten werken. Ik heb hetzelfde gebruikt bij de backend van een webwinkel om zo data uit een form via post en weergave en verwerkings parameters via get te doen. Of het legale HTML is weet ik niet, de backend kwam iig door de W3C validator als XHTML 1.1 zijnde.

“You know what I've noticed Hobbes? Things don't bug you if you don't think about them. So from now on, I simply won't think about anything I don't like, and I'll be happy all the time!” | 宇多田ヒカル \o/


  • wasco
  • Registratie: April 2003
  • Laatst online: 04-05 11:18

wasco

brightest crayon in the box

(jarig!)
waarom zou dit niet 'legaal' zijn. Je geeft toch een valide url op als action?

wasco [the brightest crayon in the box]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:46

crisp

Devver

Pixelated

Ja, het is legaal. Mogelijk dat sommige stokoude browsers erover struikelen, maar er is geen reden waarom het niet zou werken.
Of het verstandig is is een 2e; persoonlijk vind ik het netter om bij een POST request ook alle variabelen in de POST te hebben; extra variabelen kan je desnoods met hidden form-elementen meesturen (en zelfs die kan je met DOM-methods on the fly aanmaken).

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op woensdag 03 augustus 2005 @ 12:44:
Ja, het is legaal. Mogelijk dat sommige stokoude browsers erover struikelen, maar er is geen reden waarom het niet zou werken.
Iniedergeval firefox 1.04 onder Debian/Linux lijkt er af en toe over te struikelen. Bezoek maar eens met de browser een PHPBB2 forum en zet de cookies uit. Ga nu een aantal keren reageren op posts, doe preview post (je hoeft niet echt je post te submitten). Compleet random zal gemiddeld 1 op de 20 van deze acties foutgaan. Je krijgt dan de melding "no post mode specified". Als je browser back gebruikt en je form submit herhaald werkt het dan weer wel altijd. (no post mode specified wordt gegeven als de parameter "post" niet in de request zit. Ik heb gecontrolleerd met een proxy en het was echt de browser zelf die alle input paramerers niet doorgaf)

Vandaar dat ik dus het vermoeden had dat dit opzich illegaal was. Mischien is het een andere fout in de form die PHPBB2 genereerd.

  • mullah
  • Registratie: April 2000
  • Laatst online: 19-07-2025
Verwijderd schreef op woensdag 03 augustus 2005 @ 13:06:
[...]
Vandaar dat ik dus het vermoeden had dat dit opzich illegaal was. Mischien is het een andere fout in de form die PHPBB2 genereerd.
Volgens mij is er niets illegaals aan, het probleem ligt in dit geval meer bij de code van phpbb.

Als je post en get gaat mixen moet je namelijk bij het programmeren opeens twee situaties afvangen in plaats van een... en welke is dan de goeie? pagina.php?var1=x of var1=y uit de $_POST variabelen. Hierdoor krijg je dus af en toe andere resultaten.

Stel de postmode in de $_POST variabelen is blanco (maar niet undefined), maar die in de $_GET variabelen is ingevuld, als dan de postmode van de $_GET variabelen wordt opgevraagd voordat de postmode van de $_POST variabelen wordt opgevraagd zal de laatste dus worden gekozen. Hier moet dan weer extra error checking voor neergezet worden om te voorkomen dat variabelen een ongeldige waarde hebben - en bij phpbb is dat misschien opgelost door gewoon een simpele foutmelding ("no post mode specified") te geven.

Samenvatting: als je lui bent zorg je ervoor dat je ze niet mixed.

Verwijderd

Topicstarter
mullah schreef op woensdag 03 augustus 2005 @ 16:03:
[...]


Volgens mij is er niets illegaals aan, het probleem ligt in dit geval meer bij de code van phpbb.

Als je post en get gaat mixen moet je namelijk bij het programmeren opeens twee situaties afvangen in plaats van een... en welke is dan de goeie? pagina.php?var1=x of var1=y uit de $_POST variabelen. Hierdoor krijg je dus af en toe andere resultaten.

Samenvatting: als je lui bent zorg je ervoor dat je ze niet mixed.
Ik snap 100% wat je bedoeld. Dit had heel goed inderdaad het probleem kunnen zijn, maar het was niet het probleem. PHPBB kijkt tegelijk, per parameter, zowel in de POST als de GET variablen. De melding komt pas als ie ze in beide niet kan vinden.

Ik heb gechecked met een soort proxy (kan ik de verstuurde request mee bekijken) en de velden waar de POST parameters moesten staan waaren gewoon soms leeg.
Pagina: 1