Autor | Zpráva | ||
---|---|---|---|
joseff0 Profil * |
#1 · Zasláno: 28. 6. 2007, 21:27:29
Ahoj.
Mám stránku aaa.htm, ktorá cez form (POST) volá stránku bbb.php a posiela jej hidden premennú $_POST['aaa']=1. V stránke bbb.php otestujem, či je $_POST['aaa'] nastavená na 1, ak áno, urobím zapis do DB a unset($_POST['aaa']) a zobrazím HTML kód stránky bbb.php. Ak nie je nastavená(napr. prídem na bbb.php z inej stránky), nezapisujem do DB, iba zobrazím HTML kód stránky bbb.php. A ak dám F5 (refresh) stránky bbb.php, zase mi spraví zápis do databázy, pritom tu premennú som už unsetol. :( Dá sa nejako spraviť, aby pri refreši stránok bol tá premenná $_POST['aaa'] nenastavená/zneplatnená? (teda aby mi po príchode zo stránky aaa.htm na stránku bbb.php spravilo zápis do DB iba raz, a stlačením F5 iba refrešlo obsah stránky) Ďakujem j. |
||
Petr Tichý Profil |
#2 · Zasláno: 28. 6. 2007, 21:33:14
Při refreshi se provede znovu "přijetí" POST informací, takže se znovu nastaví ta proměnná na jedničku.
Řešení je určitě více, ale zkus zauvažovat třeba nad přesměrováním fcí header("location: ccc.php"); na další stránku. Další přispívající ti zřejmě poradí další způsoby. |
||
Jan Tvrdík Profil |
#3 · Zasláno: 28. 6. 2007, 21:33:41 · Upravil/a: Jan Tvrdík
Problém je, že po f5 jsou data poslána znova.
Jedno z řešení je poslat data skriptu ccc.php. Ten, pokud mu dorazí potřebné informace provede požadovanou operaci a přesměruje na bbb.php, jestli nedorazí, přesměruje na aaa.php (nebo jinam) EDIT: hm, to jsem toho moc nového neporadil |
||
joseff0 Profil * |
#4 · Zasláno: 28. 6. 2007, 22:01:09
OK, SUPER, tak to ide. (cez ten header)
Ďakujem ;) j. |
||
Petr Tichý Profil |
#5 · Zasláno: 28. 6. 2007, 22:02:17
Není zač :o)
|
||
Časová prodleva: 17 let
|
0