Witam,
Zauważyłem na stronie mBanku, że jak wysyłam przelew i klikam dwa razy zatwierdź to za pierwszym razem wysyła formularz, a za drugim pisze, ze akcja jest juz wykonana. Potrzebuje coś identycznego.
Witam,
Zauważyłem na stronie mBanku, że jak wysyłam przelew i klikam dwa razy zatwierdź to za pierwszym razem wysyła formularz, a za drugim pisze, ze akcja jest juz wykonana. Potrzebuje coś identycznego.
Podejrzewam, że bank korzysta z jakiejś bazy danych (np. MySQL). W takim przypadku możemy dla każdego polecenia przelewu tworzyć rekord, któremu nadamy dwie wartości: 0 i 1. Podczas wysłania formularza stos tego rekordu będzie zwiększany o 1. W ten sposób przy następnej próbie wysłania tego samego formularza wystąpi błąd, bo rekord nie może przyjąć wartości 2.
hmm… To właśnie jest dodawanie rekordów do bazy jak “wyślij” i właśnie nie tylko ja, ale i inni często klikają w niego po X razy i rekord tworzy się po kilka razy… jak temu zapowiedz?
Porównać dane wysyłane z danymi zamieszczonymi w bazie i wg tego po prostu podstawiać w miejsce starego htmla nowy z alertem.
Mógłbyś jakiś kod dać?
Robisz normalny formularz + przycisk wysyłania, w php zaznaczasz żeby po wysłaniu danych jeśli się powiedzie wszystko załadowało się to samo (razem z zawartościa formularzy możesz nawet), z tą różnicą że pod przycisk wysyłania w kodzie podstawiasz nowy kod, mianowicie:
Dodatkowo żeby było pewne że ktoś nie pogrzebie w htmlu i nie zacznie wysyłać zdublowanych danych do bazy możesz zabezpieczyć to też na poziomie php porównując dane z POST z tymi z BAZY