Mulți webmasteri începători întreabă întrebarea: "Cum pot împiedica trimiterea datelor din formular?". Foarte des văd astfel de întrebări pe forumuri. În acest articol vă voi spune despre un mod ușor și corect de a rezolva această problemă.
Trimite din nou
Să presupunem că facem un script care acceptă date dintr-un formular transmis prin metoda POST. Scriptul a acceptat datele, a procesat-o și a emis o pagină cu rezultatul. Dar dacă utilizatorul decide să actualizeze pagina în acest moment - va vedea mesajul acestui plan:
Pentru a afișa această pagină, Firefox trebuie să trimită informații care vor repeta orice acțiune efectuată anterior (de exemplu, o solicitare de căutare sau o achiziție online).
Și două butoane. Dacă faceți clic pe una dintre ele, datele vor fi trimise din nou, adesea nedorite. Dacă faceți clic pe cel de-al doilea, nu se va actualiza pagina. În orice caz, utilizatorul nu este bun la acest mesaj. Utilizatorii nu-i plac foarte mult ferestrele pop-up bruște.
Pentru începători, vă voi arăta un script pe care îl vom modifica.
Puteți trimite formularul o singură dată, apoi apăsați pe Ctrl + R și vedeți fereastra nepotrivită. Să scăpăm de asta.
Împiedicarea resubrimării unui formular utilizând o redirecționare la nivel de server
Pentru a împiedica trimiterea din nou a formularului, puteți face o redirecționare a serverului. Acest lucru se face prin trimiterea antetului locației în browser cu adresa URL dorită. De exemplu, ar trebui să fie o pagină de mulțumire pentru formularul completat. Atunci vom scrie ceva în spirit:
În acest caz, serverul va primi datele, va procesa și în loc să afișeze rezultatul, trimite clientul la pagina unde va fi afișat acest rezultat.
Dezavantajul acestei metode este că utilizatorul poate face clic pe butonul "Înapoi" și poate reveni la pagina cu redirecționare. Ea îl mușcă din nou înainte și astfel utilizatorul nu se poate întoarce la două pagini înapoi, la forma pe care o inițial zaoplnyal.
Împiedicarea repetării unui formular utilizând o redirecționare a unui client
Etichetele META, pe de altă parte, au un avantaj în termeni de universalitate. Ei redirecționează totul și întotdeauna.
Optimum va combina aceste două metode. Așa cum - Alexander Shurkaev a descris în notă redirecționarea optimă.
Folosim metoda sa după cum urmează.
Încearcă! Acum, aparent, nu apare nici o fereastră. Ce am făcut? Am verificat. Dacă au apărut datele - afișăm toate informațiile necesare redirecționării. În principiu, după aceea, puteți chiar să ieșiți, pentru a nu încărca browserul cu date inutile, pe care nimeni nu le va vedea.