Jak se bránit vícenásobnému odeslání formu rubrika: Programování: PHP

1 dejmad
položil/-a 27.11.2018

Ahoj,
zajímalo by mě, jak řešíte vícenásobné odeslání formu při dbl click, nebo multi cklik 10x za sekundu.
Typicky stránka form => submit => submit.php script uložení do db => redirect

Občas se stane, že mi uživatel klepne víckrát na button a form se odešle vícenásobně = komplikace

Rozhodl jsem se to řešit tím co umím a chápu - hashem md5(mktime().salt()) v hidden input formu.
v submit.php kontroluji počet jeho použití přes $_SESSION['lastHash'] = $_POST['hash']

napadá mě ještě javasrciptem afterclick button disable, ale to se mi nezdá dostatečné

Jak se to řeší sofistikovaně/programátorsky?

odkaz
9 Taco
odpověděl/-a 27.11.2018

Řešil jsem to tak, že jsem po nějaký čas disabnul button javascriptem. Pokud jde o uživatele, myslím si, že by to mohlo stačit.

Komentáře

  • ondrakoupil : Souhlas. Akorát pozor, formulář je možné odeslat i jinak, např. enterem v nějakém textovém inputu. Je potřeba hlavně zablokovat submit událost, například pomocí onsubmit="return false", nebo jakýmkoliv lepším způsobem, jak zavolat event.preventDefault(). 2.12.2018

Pro zobrazení všech 6 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.