Autor Zpráva
vratimov
Profil *
aho,

první popíšu situaci:

mám index.php, na něm form který se odesila na soubor action.php, zde se provedou o operace a následně dojde k přeměrování zpět na index.php pomoci 'header location'. V tomto location jsou předávány GET proměnné.

A tady je problém, potřeboval bych, abych byl schopný poznat, kdy jsou tyto proměnné předávány těsně po presměrování a ne třeba po tom, co na odkaz s těmito proměnnýma uživatel klikne v historii prohlížeče.

Zkoušl jsem SEREVER referer, ovšem ten nefunguje.

nějaké napady? díky
AM_
Profil
Nelze. Každopádně ne spolehlivě.

Řeší se to obvykle takto:
formular.php -- (odkaz, odesílá požadavek na změnu dat na serveru)--> zpracuj.php - (header location) --> zpracovano.php.
Tímto postupem se zpracuj.php do historie prohlížeče neuloží, a tudíž nedojde k nedopatřenému dvojímu odeslání dat.
tiso
Profil
AM: „... a tudíž nedojde k nedopatřenému dvojímu odeslání dat.
Nemáš pravdu, dvojklik na odosielacie tlačítko dáta odošle viackrát.
Perry
Profil
Dvoj-odesláni se dá vyřešit třeba vytvořením SESSION po prvním uložení dat. A po header location se zase smaže... tím by se měl eliminovat víceklik na submit.
AM_
Profil
tiso:
Nemáš pravdu, dvojklik na odosielacie tlačítko dáta odošle viackrát.
To je pravda, myslel jsem v případě proklikávání historií. Dvojklik na odesílací tlačítko je zase jiná kapitola.

Perry:
Dvoj-odesláni se dá vyřešit třeba vytvořením SESSION po prvním uložení dat
Vzhledem k tomu, že to není atomická operace, tak raději před uložením :) ale bohužel ani tak to není 100% spolehlivé, pokud přijdou dva požadavky těsně po sobě, otevřou se oba skripty s prázdnou SESSION. Pokud to má být zcela neprůstřelné, je to docela zajímavá úloha vymyslet na to synchronizační mechanismus.
vratimov
Profil *
tak nakonec jsem to vyřešil těma sessions

díky všem

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