Prevencia opakovania odoslaní formulára pomocou php zasadnutí
Všetci sme videli tie správy, na niektorých webových stránkach varovanie, kliknite na tlačidlo viac ako raz, alebo negatívne dôsledky, ako je platenie účet dvakrát, môže dôjsť. Niekedy sa môžeme spôsobiť tieto problémy tým, že udrie späť, alebo Obnoviť tlačidla. V tomto článku sa budem vysvetľovať metodiku, keď miesto môže zabezpečiť, že každá forma je podaná iba raz, čím sa preukáže, že takéto varovania sú zbytočné a, v závislosti od charakteru problémy spôsobené, za opravu ihneď. Začnime tým, že pohľad na proces, ktorý študujeme: Odoslanie formulára. Pedantský ako sa to môže zdať, bude užitočné, aby každý detail z krokov v tomto procese: Návštevník vyžiada stránku zo servera, ktorý má formu tlačiva it.Server načíta a odošle user.User zadá údaje o tvare a podriaďuje server.Server spracováva dáta z formulára a vráti výslednej stránky. Scenár Teraz je potrebné analyzovať ich, keď používateľ re-spúšťa predchádzajúce odoslaní formulára procesu. Čo potrebujeme, je nájsť alebo vytvoriť niečo, čo zmeny v priebehu procesu formulár podania, ktorý nie je závislý na konkrétnej forme predložený a ktorý môžeme povedať zmeniť. To bola veta, ktorá plne naloženej podrobnosti naše riešenie, takže môžeme vyraziť. Nájsť alebo vytvoriť niečo, čo zmeny počas procesu odoslaní formulára, sa nemôže závisieť na konkrétnej podobe predložený, môže andwe povedať changed.Since bod, ktorý zmeny nezávisí na forme predložený (napr. nezáleží na tom, jestli je to newsletter registračného formulára, zákaznícke registračného formulára, platobný prostriedok, atď), je táto položka nie je niečo, čo už existuje, a preto musia byť vytvorené, takže môžeme vytvoriť formulár premennú submissionId a predpokladám, že má 3 vyššie spomínané vlastnosti. Tak ďaleko, tak dobre - alebo to tak aspoň zdá! Tretí "majetok" je to, že "môžeme povedať, [to] zmenil", ale "zmena", nie je majetkom variabilný, takže sa musíme pozrieť na to bližšie. Aby bolo možné povedať niečo zmenilo, my musí mať záchytný bod, odpoveď na otázku "zmenil z toho, čo?" Toto je miesto, kde premenné sedenie príde do hry. Ak budeme definovať premenné sedenie, teda $ _SESSION [ 'nextValidSubmission'], a zaobchádzať s ňou ako referenčný bod, budeme mať všetky nástroje potrebné na ochranu našich návštevníkov. Bude potrebné, aby premenné sedenie aktualizované posledný submissionId rozposlané a zmeniť submissionId zakaždým, keď je poslal k užívateľovi. Potom, keď sa pokúsi znova dáta, budú predložiť starý submissionId, ktorá nezodpovedá nextValidSubmission a budeme vedieť, nebude znovu-spracovanie týchto údajov. Pozrime sa na to v z hľadiska procesov: návštevník vyžiada stránku zo servera, ktorý má formu tlačiva it.Server načíta, vytvára nové submissionId ktorý je zapustený do formy, aktualizácia nextValidSubmission a odošle user.User zadá údaje o tvare a podriaďuje server.Server spracováva dáta z formulára, zmeny nextValidSubmission, a vráti výslednej stránky. Teraz, keď návštevník nejako odosielať dáta, budú posielať staré submissionId, ktoré nebudú zodpovedať novým nextValidSubmission. Takže si teraz môžete rozlúčiť sa spoliehať na javascript odstrániť / deaktivovať tlačidla, hlúpe varovné správy, a rozrušený zákazníkov tým, že bráni formulár re-submission.Webmaster z Script Referencie - * NEW * PHP Príručky a výučba stránok pre Non-Programátori nájdete tu pre podrobnejšie informácie, napríklad s využitím PHP a alternatívna metóda, ktorá nevyžaduje
Článok Zdroj: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Webmaster si html kód
Pridajte tento článok do svojich webových stránok sa!
Webmaster Pošlite svoj článok
Nie nutná registrácia! Vyplňte formulár a Váš článok je v Messaggiamo.Com Adresár!