ugrás a tartalomhoz

Böngésző vs php formküldés

Anonymous · 2006. Már. 21. (K), 11.47
Üdv.

Van egy formom php-vel feldolgozom stb. működik minden szépen.
Viszont ha elküldöm a formot és utána nyomok egy frissitést az IE-ben akkor megint bekerül az user az adatbázisba.
Ezt, hogy lehet egyszerűen megoldani?
 
1

POST

janoszen · 2006. Már. 21. (K), 12.30
A POST metódusú kéréseknél a böngésző nem engedi a frissítést, illetve rákérdez előtte.

Másik megoldás, hogy bizonyos időt kell várni, amíg még egyszer beküldhet egy formot valaki.

Harmadik megoldás, hogy a regisztráció elkezdésekor a sessionjében "jóváírsz" egy form submit kulcsot egy azonosítóval, és ha beküldte, akkor visszaveszed tőle. Ez a kulcs lehet mondjuk az IP cím és a form típus MD5-je vagy hasonló. Helyzete válogatja.
3

postvan

Anonymous · 2006. Már. 21. (K), 12.52
Pedig POST metódusom van és nem kérdez rá a 6-os IE...
Ez utóbbi biztatóan hagzik, e énazt reméltem van ennek valami egyzserűbb megoldása pl. unsetlem az aktuális sql utasitást. Persze ez nem jött be.
Mindenesetre köszi az ötleteket.
2

md5

virág · 2006. Már. 21. (K), 12.34
Szia,

pl. csinálhatsz MD5 hasht a POST tömb-re és ha bizonyos időintervallumon belül ugyanazt kapod, akkor elutasítod. De más megoldások is lehetnek.
4

header fv...

Anonymous · 2006. Már. 21. (K), 13.31
ha sikeres az sql művelet, akkor header függvénnyel küldd újra az oldalt:

<?php
header('Location: '.$ide_a_cim);
?>
ezáltal elveszíti a post metódust.

gex
5

állapot változás

Hodicska Gergely · 2006. Már. 21. (K), 18.28
Szia!


Gex javaslatát egészíteném ki azzal, hogy általánosságban igaz az, hogy ha egy olyan kérést küldesz, ami az akalmazásod perzisztens állapotát (pl. aktuálisan rendezendő oszlop megváltoztatása nem ilyen) megváltoztatja (ez lehet DB-be írás, fájlba írás stb.), akkor illik után egy Location headerrel továbbítani a felhasználót a következő oldalra.


Felhő