

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ší?
no ak sa nemylim, tak redirect by nemal samovolne menit metodu(POST, GET), ktoru obdrzal. cize ked ako parameter metody redirect strURL pouzijes len domena_kde_sa_to_ma_presmerovat[script.asp], tak by sa data prijate z POSTu mali poslat dalej. treba ale odskusat.
[] - znamena volitelne
Nemal by, ale mení.
co som cital, tak to mozu sposobovat len starsie prehliadace, ktore nepodporuju http 1.1. ale ak mas prakticke skusenosti, tak sa nehadam.
Mám praktické skúsenosti.
edit: resp. keď pošleš 307 Temporary redirect, tak sa prehliadač spýta, či má odoslať údaje z formulára ďalej. Ale je to otravné a každý aj tak používa na redirect 302.
To, že by to bylo tak jednoduché mě nenapadlo. Díky vyzkouším to. Za pokus se nic nedá.
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.
To by taky mohlo jít.
Díky všem za tipy.
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.