Gość_robson
19.02.2005, 00:47:29
Witam!
Chciałbym się dowiedzieć, jak przy użyciu jezyka php rozwiązać problem powyższy. Chodzi o to, aby z jednego komputera dało się zrobić tylko jeden wpis do bazy danych...
Coś mi chodzi po głowie wykorzystanie plikow cookies, ale jestem swierzy w php i nie weim ja się za to zabrać.
Z góry dzięki za pomoc!
Pozdrawiam,
Robert
Kinool
19.02.2005, 02:24:38
generalnie nie ma 100% mozliwosci jednoznacznego rozpoznania komputera, mozesz sprawdzac adres IP, umieszczac cookie, sprawdzac klienta, przegladrake i system ale wszystkie te informacje jakie mozesz pobrac (bez wiedzy usera) mozna podrobic lub zmienic.
mam dziwne wrazenie, ze tu chodzi o przedstawienie gotowego rozwiazania...
tak ja Kinool rzekl nie ma 100% mozliwosci na jednoznaczna identyfiakcje komputera, ale imho mozesz ograniczyc ilosc wpisow do bazy w nast sposob: pobierac od uzytkownika informacje o ip, przegladarce i systemie, a nast. wraz z wpisem do bazy zapisac rowniez te informacje, przed wpisem do bazy sprawdzic czy komputer o takich wlasnosciach (ip, system, przegladarka) nie dokonal juz takiego wpisu. wada tego rozwiazania jest jednak niepotrzebna ilosc gromadzonych informacji i dodatkowy select, ktory obciaza baze. aby ustrzec sie przed dowcipnisiami, ktorzy pomimo komuniaktu, ze taki wpis juz istnieje beda odswiezac strone wykonujac tym samym niepotrzbnego selecta mozna by w sesji ustawic licznik, ktory po wykonaniu selecta czy selecta i inserta, pozwolilby na blokade kolejnego wykonania operacji na bazie..
(w skrocie: na formularzu zaczynam sesje i ustawiam w niej zmienna licznik na zero -> formularz przetwarzajacy sprawdza stan licznika i zwieksza go o 1, jezeli licznik wynosi 1 to, sprawdza dane, wykonuje selecta na danych z formularza + ip, przegladarka, system i co tam jeszcze chcesz do "jednoznacznej identyfikacji", jezeli wpisu w bazie nie ma to go dodaje jezeli jest to wyswietla komunikat o bledzie..).
oczywiscie zawsze mozna zamknac przegladarke/(wykonac jeszcze raz skrypt majacy na celu zapchanie bazy) no ale na to juz wplywu nie mamy.
i jeszcze sesja, o ktorej wspomnialem... jezeli idzie na ciastkach to nie dobrze bo mozna zablokowac ich obsluge, jezeli nie to w miare dobrze powyzsze rozwiazanie dziala...
dr_bonzo
19.02.2005, 10:06:24
Jesli sesja nie jest oparta na ciastkach to mozna usunac ID sesji z adresu.
Po prostu:
Cytat
generalnie nie ma 100% mozliwosci jednoznacznego rozpoznania komputera
. IMO wysatarczy sprawdzanie IP i ustawienie limitu kilka wpisow na godzine/dobe/forever czy inna wartosc.
Kinool
19.02.2005, 10:47:08
Cytat(dr_bonzo @ 2005-02-19 11:06:24)
wysatarczy sprawdzanie IP i ustawienie limitu kilka wpisow na godzine/dobe/forever czy inna wartosc.
kolega chce zrobic z jednego kompa jeden wpis tak wiec poleganie na adresie IP to bardzo kiepski sposob! dynamiczne IP albo NAT skutecznie uniemozliwiaja wykoanaie takich operacji.