Administruje serwisem, który działa w dość dużej firmie (zlecenia,
urlopy itp). Całość działa na wieloprocesorowej maszynie z
zainstalowanymi: Win2003 + IIS + PHP + MSSQL Serwer.
Do rozmaitych funkcji systemu, użytkownicy mają dostęp poprzez
przeglądarkę internetową.
Od jakiegoś czasu, walczę z problemem "odświeżania". Chodzi mi o to, jak
zablokować albo odświeżanie stron (z tego co wiem, jest to ciężko) albo
(to by było dobre rozwiązanie) unioemożliwić dwukrotne wykonanie teego
samego zapytania.
Zdarza się ostatnio coraz częściej, że ktoś wpisze zlecenie, zamówienie
czy jakieś inne informacje, doda, po czym odświeży stronę - no i mamy
dwa zamówienia, trzy urlopy itd.
Myślałem nad rozwiązaniem tego problemu z zastosowaniem sesji PHP, ale
nie wiem czy jest to najszczęśliwsze rozwiązanie. Może lepiej skorzystać
z mechanizmów (jakich?) MS SQLa ?
Z góry dziękuje za wszelkie pomocne informacje i uwagi.
Pozdrawiam serdecznie - Krzysztof.
Z góry dziękuje za wszelkie pomocne informacje i uwagi.Pozdrawiam serdecznie - Krzysztof.
Pozdrawiam
syku
| Z góry dziękuje za wszelkie pomocne informacje i uwagi.| Pozdrawiam serdecznie - Krzysztof.
Redirect po wykonaniu zapisu zalatwi sprawe
Pozdrawiam
syku
A co z funkcją "COFNIJ" ?
Wykona ponownie to samo :-P
KK
W sumie proste i chyba skuteczne rozwiązanie
Wcisnąć F5 pomiędzy zapytaniem do bazy a "redajrektem" nie za bardzo się
da, bo wszystko wykonywane jest wtedy po stronie serweraA co z funkcją "COFNIJ" ?
Wykona ponownie to samo :-P
| W sumie proste i chyba skuteczne rozwiązanie
| Wcisnąć F5 pomiędzy zapytaniem do bazy a "redajrektem" nie za bardzo się
| da, bo wszystko wykonywane jest wtedy po stronie serwera| A co z funkcją "COFNIJ" ?
| Wykona ponownie to samo :-P
rozumujac w ten sposob powinienes zabezpieczyc aplikacje przed dwukrotnym
wypełnieniem tego samego formularza bo tez beda dwie kopie...
| rozumujac w ten sposob powinienes zabezpieczyc aplikacje przed dwukrotnym
| wypełnieniem tego samego formularza bo tez beda dwie kopie...wpisanie usera z premedytacją 2x tej samej treści w ten sam formularz,
a bezwiedne wysłanie dwukrotne to chyba 2 inne sprawy nie?
pomysl z tokenem jak najbardziej ok
mozna tez pobawic sie z obsluga cache
np w ASP:
Response.Expires = 0
Response.ExpiresAbsolute = Now ()-1
Response.AddHeader "pragma", "no-cache"
Response.AddHeader "cache-control", "private"
Response.CacheControl = "no-cache"
zalatwia sprawe calkowicie - po wcisnieciu cofnij formulaz jest czysty.
Wystarczy znalezc odpowiedniki powyzszego kodu dla PHP.
Pozdrawiam
syku
| rozumujac w ten sposob powinienes zabezpieczyc aplikacje przed dwukrotnym
| wypełnieniem tego samego formularza bo tez beda dwie kopie...| wpisanie usera z premedytacją 2x tej samej treści w ten sam formularz,
| a bezwiedne wysłanie dwukrotne to chyba 2 inne sprawy nie?uzyszkodnik musial by bezwiednie wcisnac przycisk wstecz (raczej proste
szczegolnie z wieloprzyciskowymi myszkami) a pozniej bezwiednie ponownie
wcisnac przycisk wyslij...pomysl z tokenem jak najbardziej ok
| rozumujac w ten sposob powinienes zabezpieczyc aplikacje przed dwukrotnym
| wypełnieniem tego samego formularza bo tez beda dwie kopie...| wpisanie usera z premedytacją 2x tej samej treści w ten sam formularz,
| a bezwiedne wysłanie dwukrotne to chyba 2 inne sprawy nie?| uzyszkodnik musial by bezwiednie wcisnac przycisk wstecz (raczej proste
| szczegolnie z wieloprzyciskowymi myszkami) a pozniej bezwiednie ponownie
| wcisnac przycisk wyslij...| pomysl z tokenem jak najbardziej ok
tylko problem ma głębsze podłoże, sytuacja mniejwięcej taka, że
user klika submit [...]
Przeglądarka niby zwisa, user po minucie (to zależy od cierpliwości usera)
klika submit 2 raz,
Pozdrowka,
| | rozumujac w ten sposob powinienes zabezpieczyc aplikacje przed dwukrotnym
| | wypełnieniem tego samego formularza bo tez beda dwie kopie...| wpisanie usera z premedytacją 2x tej samej treści w ten sam formularz,
| a bezwiedne wysłanie dwukrotne to chyba 2 inne sprawy nie?| uzyszkodnik musial by bezwiednie wcisnac przycisk wstecz (raczej proste
| szczegolnie z wieloprzyciskowymi myszkami) a pozniej bezwiednie ponownie
| wcisnac przycisk wyslij...| pomysl z tokenem jak najbardziej ok
| tylko problem ma głębsze podłoże, sytuacja mniejwięcej taka, że
| user klika submit [...]
| Przeglądarka niby zwisa, user po minucie (to zależy od cierpliwości usera)
| klika submit 2 raz,Rozwiazaniem tego problemu sa tzw. tickety. Generujac formatke dla usera
zapisujesz do bazy ticket i w formatce umieszczasz go w polu hidden. Po
zasubmitowaniu formatki zaznaczasz ticket jako niewazny (zuzyty). Wykonujesz
operacje tylko jesli ticket jest wazny.
WitamAdministruje serwisem, który działa w dość dużej firmie (zlecenia,
urlopy itp). Całość działa na wieloprocesorowej maszynie z
zainstalowanymi: Win2003 + IIS + PHP + MSSQL Serwer.
Do rozmaitych funkcji systemu, użytkownicy mają dostęp poprzez
przeglądarkę internetową.
Od jakiegoś czasu, walczę z problemem "odświeżania". Chodzi mi o to, jak
zablokować albo odświeżanie stron (z tego co wiem, jest to ciężko) albo
(to by było dobre rozwiązanie) unioemożliwić dwukrotne wykonanie teego
samego zapytania.
Zdarza się ostatnio coraz częściej, że ktoś wpisze zlecenie, zamówienie
czy jakieś inne informacje, doda, po czym odświeży stronę - no i mamy
dwa zamówienia, trzy urlopy itd.
Myślałem nad rozwiązaniem tego problemu z zastosowaniem sesji PHP, ale
nie wiem czy jest to najszczęśliwsze rozwiązanie. Może lepiej skorzystać
z mechanizmów (jakich?) MS SQLa ?Z góry dziękuje za wszelkie pomocne informacje i uwagi.
Pozdrawiam serdecznie - Krzysztof.