![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 21 Dołączył: 21.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak w temacie...jak zabezpieczyc formularz, przed ponownym wpisem do bazy danych?
Powiedzmy ze zrobilem prosty formularz rejestracji, dane przesylane sa metoda POST, i gdy juz wpisze uzytkownika do bazy danych, ktos moze nacisnac F5 i ponownie dodac tego uzytkownika, przez co bedzie balagan w bazie. Jak to zrobic, zeby po odswiezeniu zapytanie SQL nie bylo juz wysylane? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
Ciężko było Ci podpowiedzieć tak "na oko", bez większej ilości informacji. Jeżeli ktoś zatrzyma wykonywanie skryptu to przecież nie wyśle niczego do bazy (IMG:style_emoticons/default/blinksmiley.gif) .
Jeżeli dobrze rozumiem, na pierwszej stronie ktoś podaje dane a na drugiej weryfikuje i zapisuje je do bazy. Nie do końca rozumiem czego się obawiasz skoro wszystko sprawdzasz. Jeżeli użytkownik musi uzupełnić wszystkie pola, to w jaki sposób ma Ci narobić bałaganu? Jeżeli obawiasz się, że ktoś wyśle 2 razy zapytanie do bazy (dając zapisz i odśwież) to przekieruj go headerem - nie ma wtedy możliwości odświeżenia (tych danych) - możesz go przenieść do kompletnie innej strony. Dodatkowo sprawdzaj czy dany login istnieje, bo hipotetycznie dwie osoby będą chciały zarejestrować się pod tym samym np. nickiem. Przejdą przez pierwszy etap weryfikacji w miarę jednocześnie (login jest wolny), natomiast w drugim (w którym nie sprawdzasz zajętości) obaj zatwierdza zmiany i co wtedy? Wystarczy, że pierwszy użytkownik, który chciałby zająć dany login, nie zdąży zapisać zmian po weryfikacji gdy drugi zechce również zarejestrować dany login. Mam nadzieję, że dobrze rozumiem Twoje obawy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 18:07 |