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
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
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
Jak to, že session funguje i bez spuštění funkce session_start()?
Keeehi
Profil
Zřejmě nastavení.
lionel messi
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0