Autor | Zpráva | ||
---|---|---|---|
Milan1236000 Profil |
Ahoj,
jak nejlépe zamezit vícenásobnému odeslání formuláře při refreshi stránky? Slyšel jsem něco v souvislosti s přesměrováním po odeslání formuláře. Napadlo mě po zpracování stránky unsetnout proměnné v $_POST['...']. Stačí to ale? Mimochodem, jak by se dal "vynulovat" formulář při kliknutí na tlačítko zpět v prohlížeči? Nyní zůstává formulář vyplněn tak, jak byl odeslán. Jak něco takového řešíte vy? :) Díky. |
||
Radek9 Profil |
#2 · Zasláno: 5. 7. 2019, 19:42:15
Milan1236000:
„jak nejlépe zamezit vícenásobnému odeslání formuláře při refreshi stránky? Slyšel jsem něco v souvislosti s přesměrováním po odeslání formuláře.“ Přesně tak. Odeslat formulář třeba na stranka.php?form a po odeslání přesměrovat zpátky na stranka.php .
„Napadlo mě po zpracování stránky unsetnout proměnné v $_POST['...']. Stačí to ale?“ Ne. To se děje na serveru. Prohlížeč si hodnoty pamatuje dál. |
||
Milan1236000 Profil |
Mám právě jeden soubor, který má 4 stavy:
stranka.php - zobrazí výchozí nedůležitý text stranka.php?parametr=hodnota - zobrazí formulář s metodou POST a action "stranka.php" stranka.php s hodnotou v POSTU z formuláře - zobrazí formátovaná data z databáze stranka.php s určitým surovým slovem v těle dotazu - zobrazí data z databáze ve formátu json Jak bych tedy v tomto případě měl udělat přesměrování? Díky. |
||
Milan1236000 Profil |
#4 · Zasláno: 6. 7. 2019, 00:29:03
Už jsem přišel na řešení. V POSTU si data uložím do SESSION, přesměruju na stranka.php a tady zobrazím data ze SESSION a skryju ten nedůležitý text. :)
|
||
Milan1236000 Profil |
#5 · Zasláno: 7. 7. 2019, 01:31:57
Jak to, že session funguje i bez spuštění funkce session_start()?
|
||
Keeehi Profil |
|||
Časová prodleva: 6 měsíců
|
|||
lionel messi Profil |
#7 · Zasláno: 27. 12. 2019, 21:23:13
Pridám sem ešte jedno riešenie, ktoré v diskusii nepadlo - po spracovaní formulára poslať hlavičku so stavovým kódom 303.
|
||
Časová prodleva: 5 let
|
0