Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Jak zabezpieczyc sie przed odswiezaniem i ponownym wysylaniem danych do mysql?
Forum PHP.pl > Forum > Przedszkole
cros
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?
Daiquiri
Przekierować użytkownika? Coś na kształt:

  1. header('Location: ');
cros
Cytat(Daiquiri @ 24.08.2009, 16:17:46 ) *
Przekierować użytkownika? Coś na kształt:

  1. header('Location: ');


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?
Daiquiri
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 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.
erix
Temat: odwieanie strony zapis

Już wyszukiwarkę zbanowali...? O.o
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.