» Poradna » Web a internet
Dobrý večer,řeším problém s php scriptem. Ukládám data do databáze a když dám refresh stránky tak se mi uloží znova. Jak by se dal ošetřit tendle problém, aby se data znova neukládali ?
Ukládat pouze u POSTu a pak provést Redirect.
Posílám práve přes POST...jak pouziju ten redirect ?
http://www.php.net/manual/en/function.header...
Dost pochybuju o tom že to bude fungovat. Když přesměruju po odeslání formuláře s daty metodou post na tu samou stránku kde se mi ta data i zobrazí tak se to ty data zase nacpou dodatabáze ne ?
Jistě, že se tak stane ... Řešení je předávat nějaký token, tedy vygenerovaný hash čísel, který by šlo použít jen jednou... ten si třeba ukládat do databáze, nebo použít session, či cookies (které uživatel tedy může ovlivnit) ...
Takže kdybych si v nějakym skrytým inputu generoval nejaký to číslo dejme tomu a ukládal si ho do sessionu a pak ho vždycky porovnal a jestli se čísla schodují tak bych zakázal uložení dat znova ? šlo by to tak ?
A já myslím, že ne.Prostě pošleš data z aaa.php na bbb.php, bbb.php ty data zpracuje a přesměruje stránku na aaa.php (třeba i s daty). Pokud pak refrešneš aaa.php tak se nic zpracovávat nebude.
proto se musi presmerovat na GET, je to i navrhovej vzor POST-redirect-GET, pak se ty data znovu samozrejme neulozi :)viz: http://en.wikipedia.org/wiki/Post/Redirect/Get
Přečtu si to, díky ;)
Související témata: Refresh
{{values.description}}
Jak používat VR k práci
Megatest 18 levných monitorů
Test lokátorů s Bluetooth
Průvodce nákupem RAM
Potvrďte prosím přezdívku, kterou jsme náhodně vygenerovali, nebo si zvolte jinou. Zajistí, že váš profil bude unikátní.
Tato přezdívka je už obsazená, zvolte prosím jinou.