Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno ASP Response.Redirect pro metodu POST

Zdědil jsem ASP skripty na intranetu a formuláře jsou dělané metodou GET.

Problém je v tom, že původní předpoklad, že obsah polí bude krátký už neplatí a potřeboval bych to předělat na metodu POST. V ASP se bohužel moc neorientuju. Vím, že je potřeba změnit request.querystring na request.form, ale mám problém s tím, tak nahradit ve skriptu test.asp, který testuje obsah formuláře

Response.Redirect("add_update_and_delete.asp?smazat="&usubmit1& "&update="&usubmit2& "&zneplatnit="&usubmit3&)

abych to mohl předat data dál ze skriptu test.asp do skriptu add_update_and_delete.asp opět metodou opět POST.

Našel jsem řešení přes session a cookies, ale ani jednu z těchto věcí jsem nikdy nepoužíval a tak se v nich tak nějak ztrácím. :-(

Nevíte ještě o nějakém jiném řešení, které by bylo pro laika průhlednější?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Response.Redirect vyzerá tak, že server pošle odpoveď prehliadaču, že choď na túto stránku, pričom v…
los 06.02.2007 20:13
los
Server.Execute To by taky mohlo jít. Díky všem za tipy.
yorg 06.02.2007 20:21
yorg
Ja robím pod ASP, Server.Execute som ešte nepoužíval, ale používam - SERVER.TRANSFER. Rozdiel medzi… poslední
Len tak 06.02.2007 21:20
Len tak

Response.Redirect vyzerá tak, že server pošle odpoveď prehliadaču, že choď na túto stránku, pričom v tej odpovedi je iba adresa a žiadne dáta z formulára. Prehliadač potom ide na tú stránku a pôvodné dáta z formulára neposiela, takže ich musíš spracovať vtedy, keď ich pošle. Použiť cookies alebo session sa síce dá, ale nie je to ideálne.

Najlepšie je to spraviť tak, že to spracuješ priamo na tej stránke.

Prípadne si pozri metódy Server.Transfer a Server.Execute, ktoré odovzdávajú riadenie medzi skriptami priamo na serveri. Server.Transfer odovzdá riadenie druhému skriptu a v pôvodnom skripte ďalej nepokračuje. Server.Execute vykoná volaný skript a pokračuje ďalej vo vykonávaní pôvodného skriptu.

Ja robím pod ASP, Server.Execute som ešte nepoužíval, ale používam - SERVER.TRANSFER. Rozdiel medzi EXECUTE a TRANSFER je v tom, že po volaní EXECUTE IIS pokračuje v stránke - dočíta ju do konca, kdežto TRANSFER ukončí po presmerovaní dočítanie - je to niečo ako REDIRECT s rozdielom, že sa nezmení URL adresa. Dúfam, že som to dobre napísal, dneská fetujem - mysľou.

Zpět do poradny Odpovědět na původní otázku Nahoru