[FLASH] POST method eigenaardigheden

Pagina: 1
Acties:
  • 163 views sinds 30-01-2008
  • Reageer

  • oh,when?
  • Registratie: April 2000
  • Niet online
Op verzoek van B-Top post ik mijn vonds hier ook maar ff, copy/paste uit de originele mailing die ik heb verzonden aan Flashcoders.

Misschien heb je er wat aan!

:)

----

For the past 2 hours i've been banging my head against the wall because of the following:
When you have a Flash form, and use any of the following:

loadVariables, getURL with the POST method, it actually fakes a POST request. It will send a GET request, and attaches the form data as name/value pairs in the body.

So let's say you wrote a simple php file, and explicitly checks for POST data, the vars are always NULL or empty.
example:
PHP:
1
2
3
4
5
6
<?
$postfoo = $HTTP_POST_VARS["foo"];
$getfoo  = $HTTP_GET_VARS["foo"];

echo "the value of postfoo = " . $postfoo . " and the value of getfoo = " . $getfoo;
?>

Then call this script from within your Flash environment:
code:
1
loadVariables ("foo.php", "", "GET");

or
code:
1
loadVariables ("foo.php", "", "POST");

It will send the following request ( found out by watching the raw data from the request ):
code:
1
2
3
4
5
6
7
GET /www/public_html/foo.php HTTP/1.1
Content-Type:application/x-www-form-urlencoded
Content-Length: 18
User-Agent: ShockwaveFlash
Host:www.example.com:80
Cache-Control: no-cache
foo=could+be+any+value$bar=more+data+to+follow

Notice the first line, that says GET? It fakes a POST request by adding the name / value pairs in the body request (like a normal POST method)

I have yet to find a workaround, but at least i know where the problem is. Took me awhile to find out. Sorry if this was posted before, but i couldn't find anything in the archives.

HTH

Owen van Dijk
Web Developer - TROS

"You're only as good, as what you did last week."


Verwijderd

<KLAP><KLAP><KLAP>!!!!!:9~

Verwijderd

where's the celebration smilie when you need em?
:)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 16:30

Janoz

Moderator Devschuur®

!litemod

Op dinsdag 27 november 2001 19:30 schreef oh,when? het volgende:

Op verzoek van B-Top post ik mijn vonds hier ook maar ff, copy/paste uit de originele mailing die ik heb verzonden aan Flashcoders.



Misschien heb je er wat aan!



:)



----



For the past 2 hours i've been banging my head against the wall because of the following:

When you have a Flash form, and use any of the following:



loadVariables, getURL with the POST method, it actually fakes a POST request. It will send a GET request, and attaches the form data as name/value pairs in the body.



So let's say you wrote a simple php file, and explicitly checks for POST data, the vars are always NULL or empty.

example:

PHP:
1
2
3
4
5
6
7
<?

$postfoo = $HTTP_POST_VARS["foo"];
$getfoo  = $HTTP_GET_VARS["foo"];

echo "the value of postfoo = " . $postfoo . " and the value of getfoo = " . $getfoo;
?>



Then call this script from within your Flash environment:

code:
1
loadVariables ("foo.php", "", "GET");



or

code:
1
loadVariables ("foo.php", "", "POST");



It will send the following request ( found out by watching the raw data from the request ):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
GET /www/public_html/foo.php HTTP/1.1

Content-Type:application/x-www-form-urlencoded

Content-Length: 18

User-Agent: ShockwaveFlash

Host:www.example.com:80

Cache-Control: no-cache

foo=could+be+any+value$bar=more+data+to+follow



Notice the first line, that says GET? It fakes a POST request by adding the name / value pairs in the body request (like a normal POST method)
D'r staat GET omdat er GET hoort te staan. Dit heeft NIX te maken met de manier waarop vars worden doorgegeven.
I have yet to find a workaround, but at least i know where the problem is. Took me awhile to find out. Sorry if this was posted before, but i couldn't find anything in the archives.



HTH



Owen van Dijk

Web Developer - TROS
hmm .. tros.. Erg hoogstaande computer ezperts werken daar... Mischien moet Owen van Dijk eerst eens een RFC-tje doorlezen voordat hij uitspraken over protocollen gaat doen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Erm, sorry?
Waar heb je het over?

In de technotes van mm word dit ook aangekaart als zijnde een probleem....volgens mij snap je het niet helemaal...

B.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 16:30

Janoz

Moderator Devschuur®

!litemod

Dat er een probleem is met get en post bij flash wil ik best geloven, maar de verklaring die hier wordt gegeven slaat nergens op. GET heeft niks met de vars te maken. GET is standaard in het HTTP protocol. Hiermee moet een request altijd beginnen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • oh,when?
  • Registratie: April 2000
  • Niet online
Op woensdag 28 november 2001 14:52 schreef Janoz het volgende:

[..]

D'r staat GET omdat er GET hoort te staan. Dit heeft NIX te maken met de manier waarop vars worden doorgegeven.
[..]

hmm .. tros.. Erg hoogstaande computer ezperts werken daar... Mischien moet Owen van Dijk eerst eens een RFC-tje doorlezen voordat hij uitspraken over protocollen gaat doen.
ten eerste:

Misschien moet de heer Gijs de Vries eens een lesje netiquette krijgen voordat hij gaat posten, teneinde het bovenstaande op zijn minst een zeer minachtende toon heeft. De heer de Vries vind het namelijk nodig mijn werkgever erbij te betrekken, en het kennisnivo hier ter discussie te stellen. Misschien spelen frustaties op persoonlijk vlak mee ( werkloos misschien? ) en als dit het geval is, raad ik u aan op uw opleiding Informatica eens contact te zoeken met een zogenoemde student-begeleider of contactpersoon. Deze kunnen je adviseren bij verdere begeleiding.

ten tweede:

Ik wil de verloedering van de Nederlandse Taal hier niet bij betrekken, maar volgens het woordenboek is het nog altijd expert, geen ezpert. De online editie van de Vandale is slechts een paar muisklikken verwijderd.

ten derde:

Ik ben op de hoogte van RFC 2068 - Hypertext Transfer Protocol -- HTTP/1.1.

Bovenstaand voorbeeld was slechts illustratief, en een discussie op de voor- en nadelen van het HTTP protocol ging boven de uitleg van het probleem. Echter ik zou je willen adviseren zelf de raw data request te bekijken, en het zal je opvallen dat er zowaar een:

POST /www/public_html/foo.php HTTP/1.1

te ontdekken valt. Goh.

:)

"You're only as good, as what you did last week."


Verwijderd

Missen we hier iets?
Het was/is een erg leuk topic, en nu worden er persoonlijke vendetta's uit gestreden binnen het topic?
Beetje niveau graag...

jammerrrr....

  • oh,when?
  • Registratie: April 2000
  • Niet online
Op woensdag 28 november 2001 15:46 schreef B-Top het volgende:
Missen we hier iets?
Het was/is een erg leuk topic, en nu worden er persoonlijke vendetta's uit gestreden binnen het topic?
Beetje niveau graag...

jammerrrr....
geef nu zelf toe, die post van Janoz sloeg echt nergens op. Dus wie kaatst kan de bal verwachten..jammer dat het zo moet.

"You're only as good, as what you did last week."


  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 13-05 14:52

Tsjipmanz

Der Rudi ist da

Op woensdag 28 november 2001 15:36 schreef oh,when? het volgende:

[..]

Misschien moet de heer Gijs de Vries eens een lesje netiquette krijgen voordat hij gaat posten, teneinde het bovenstaande op zijn minst een zeer minachtende toon heeft.
Wat gij niet wilt dat u geschiedt...
Ik ga me verder niet in de discussie mengen maar in je antwoord ben je even minachtend. Is dit nu een geval van "Oog om oog, tand om tand" of een geval van "De pot verwijt de ketel?"

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


Verwijderd

Op woensdag 28 november 2001 15:30 schreef Janoz het volgende:
Dat er een probleem is met get en post bij flash wil ik best geloven, maar de verklaring die hier wordt gegeven slaat nergens op. GET heeft niks met de vars te maken. GET is standaard in het HTTP protocol. Hiermee moet een request altijd beginnen.
Om het interresant te houden, onderbouw jezelf DUIDELIJK...

graag...

Verwijderd

Onthou jezelf van het noemen van andermans echte naam, als iemand dat graag kwijt wil, dan doet ie dat wel...
Je mag best kritiek leveren, maar dit slaat nergens op.

Ik vind dit echt jammer...

Verwijderd

Op woensdag 28 november 2001 15:47 schreef oh,when? het volgende:

[..]

geef nu zelf toe, die post van Janoz sloeg echt nergens op. Dus wie kaatst kan de bal verwachten..jammer dat het zo moet.
Ik heb ut gelezen, maar beste reactie zou zijn om daar boven te staan....

Graag goed onderbouwen, en elkaar volgens etiquette behandelen..

B.

Verwijderd

Overigens is dit allemaal flash gerelateerd, en voor flashers nuttig...als het nou over http protocol ging....best....maar we wijken af.

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 15-09 16:29
Misschien is het voor sommige mensen handig om de volgende RFC's even door te lezen:

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 16:30

Janoz

Moderator Devschuur®

!litemod

Op woensdag 28 november 2001 15:36 schreef oh,when? het volgende:







[..]







ten eerste:







Misschien moet de heer Gijs de Vries eens een lesje netiquette krijgen voordat hij gaat posten, teneinde het bovenstaande op zijn minst een zeer minachtende toon heeft. De heer de Vries vind het namelijk nodig mijn werkgever erbij te betrekken, en het kennisnivo hier ter discussie te stellen. Misschien spelen frustaties op persoonlijk vlak mee ( werkloos misschien? ) en als dit het geval is, raad ik u aan op uw opleiding Informatica eens contact te zoeken met een zogenoemde student-begeleider of contactpersoon. Deze kunnen je adviseren bij verdere begeleiding.
Dat ik fout zat? Yep klopt (zie onderaan).

Dat ik iets te minachtend reageerde? Klopt, doe ik wel eens vaker, maar het probleem daarvan is dat je nogal hard op je bek gaat als je het toch mis hebt.



Maar om nu gelijk te stellen dat ik op 1 of andere manier gefrustreerd zou zijn? Mischien is dit 1 of andere vorm van projectie oid?
ten tweede:







Ik wil de verloedering van de Nederlandse Taal hier niet bij betrekken, maar volgens het woordenboek is het nog altijd expert, geen ezpert. De online editie van de Vandale is slechts een paar muisklikken verwijderd.
Leuk aan het vissen? Het heeft vast nix te maken met het feit dat de z en de x naast elkaar op het toetsenbord zit.
ten derde:







Ik ben op de hoogte van RFC 2068 - Hypertext Transfer Protocol -- HTTP/1.1.







Bovenstaand voorbeeld was slechts illustratief, en een discussie op de voor- en nadelen van het HTTP protocol ging boven de uitleg van het probleem. Echter ik zou je willen adviseren zelf de raw data request te bekijken, en het zal je opvallen dat er zowaar een:







POST /www/public_html/foo.php HTTP/1.1







te ontdekken valt. Goh.







:)
Yep idd, my bad. Ik heb altijd gedacht dat er get moest staan.. Maaar ik heb de RFC d'r eens ff op nageslagen.. Je hebt idd gelijk.. Weer wat geleerd...


[edit]Welke netiquette heb ik naast 'minachtend gedrag' en mischien een 'poging tot flamen' geschonden?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

<ot>
ken je de edit knop al?
4 posts op rij is niet echt nodig lijkt me
</ot>

Doet iets met Cloud (MS/IBM)


  • oh,when?
  • Registratie: April 2000
  • Niet online
Op woensdag 28 november 2001 15:52 schreef B-Top het volgende:

[..]

Ik heb ut gelezen, maar beste reactie zou zijn om daar boven te staan....

Graag goed onderbouwen, en elkaar volgens etiquette behandelen..

B.
toegegeven. mijn reactie is op het randje, echter ik zie niet in waarom ik mij niet zou mogen verdedigen.

Om verdere reacties te voorkomen, en afwachtende op de reactie van Janoz stel ik voor dat we vanaf nu on-topic houden.

Dus:

Volgens de specificaties is er geen officiele limiet op het aantal karakters die verzonden mag worden. Er is een evt 255 karakter limiet vanwege sommige proxies.

Om nu het probleem op te lossen, gebruik ik gewoon een GET method en ipv HTTP_POST_VARS doe ik nu een HTTP_GET_VARS

Dit is een tijdelijke oplossing totdat ik iets beters weet

:)

"You're only as good, as what you did last week."


  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 15-09 16:29
Maar dit is inderdaad behoorlijk smerig van Flash.

Verwijderd

Door macromedia word dus gesproken over een hybrid get/post....hebben we hier dan ook rfc's van?

B.

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 15-09 16:29
Op woensdag 28 november 2001 16:06 schreef B-Top het volgende:
Door macromedia word dus gesproken over een hybrid get/post....hebben we hier dan ook rfc's van?
Volgens mij hebben ze dit gewoon zelf verzonnen en is het gewoon een naampje voor hun illegale manier van variabelen POSTen.

  • oh,when?
  • Registratie: April 2000
  • Niet online
* oh,when? heeft no hard feelings en persoonlijke vetes uit te vechten met Janoz

dus...zand erover?

:)

"You're only as good, as what you did last week."


Verwijderd

Op woensdag 28 november 2001 15:57 schreef D2k het volgende:
<ot>
ken je de edit knop al?
4 posts op rij is niet echt nodig lijkt me
</ot>
sorry.liet me even uitlokken :)

Verwijderd

Op woensdag 28 november 2001 16:24 schreef oh,when? het volgende:
* oh,when? heeft no hard feelings en persoonlijke vetes uit te vechten met Janoz

dus...zand erover?

:)
Ik accepteer je excuus :+

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 16:30

Janoz

Moderator Devschuur®

!litemod

Op woensdag 28 november 2001 16:24 schreef oh,when? het volgende:
* oh,when? heeft no hard feelings en persoonlijke vetes uit te vechten met Janoz

dus...zand erover?

:)
* Janoz sluit zich daarbij aan

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1