![]() |
![]() |
![]()
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 ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 21 Dołączył: 21.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Przekierować użytkownika? Coś na kształt: A czy to na 100% zabezpieczy mnie przed kim, kto celowo chcialby mi balagan w bazie zrobic? Bo z tego co pamietam, wystarczy nacisnac "X" w przegladarce i zatrzymamy skrypt, wtedy nas nie przekieruje, a odswiezyc bedzie mozna :/ Uprzedzam iz sprawdzam poprawnosc wpisanych danych do formularza, w tym to czy dany uzytkownik i mail czasami nie istnieje juz w bazie i zwracam odpowiedni komunikat, ale problem w tym ze, gdy wszystko jest OK, daje jeszcze stronke, w ktorej wypisane sa wprowadzone dane, w celu potwierdzenia ich poprawnosci przez klienta, ktory sie rejestruje. Gdy nacisnie on "Zapisz" wtedy przesylam ponownie dane POST i dopiero dodaje do mysql, ale w tedy juz nie sprawdzam czy uzytkownik istnieje w bazie. Czy ponowne sprawdzanie istnienia uzytkownika, to jedyne wyjscie? Bo z tego sprawdzania za 1 razem nie moge zrezygnowac, bo nie chce aby uzytkownik dowiadywal sie dopiero przed samym zapisem, ze ten nick jest juz zajety, bo wiem jakie to bywa deprymujace (czlowiek sie nawypisuje, a tu klops... Moglbym zrezygnowac ewentualnie z tego "potwierdzania danych przez uzytkownika" i zaraz po wyslaniu formularza i sprawdzenia czy nie ma bledow, zapisywac do bazy. To jednak ma tez swoje minusy, bo ktos w loginie moze zrobic literowke i pozniej sie juz nie zaloguje. Co radzicie? |
|
|
![]()
Post
#4
|
|
![]() 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
![]() 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. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:17 |