Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 1krotna ocena przez jednego usera
Forum PHP.pl > Forum > Przedszkole
Seraph
mam problem z ocenianiem danych przez userów, konkretnie to nie wiem co jak zrobić, żeby 1 użytkownik mógł np jeden art ocenić tylko raz, myślę, że to powinno być chyba cookies, ale jedyny pomysł jaki mi przychodzi to osobne do każdego arta, a wtedy byłyby niewyobrażalne ich ilości...

jak to się robi normalnie?
b0b3k
Jezeli glosowac mogą tylko zalogowani no to zrob tabele cms_glosy z id_autora + id_artykułu i dodawaj tam, przy glosowaniu sprawdzaj czy glos istnieje i ewentualnie oprozniaj te tabele raz na tydzien.

Jezeli powyzsze rozwiazanie nie jest dobre to sprobuj ciasteczka z setcookie art_$ID_artykułu i wartosc np. voted albo 1
HighVoltage
cookies, badz/i jeden glos na jedno ip
s_w_ir
Jedno IP odpada jak wiadomo bo większość ludzi ma dziś NEO z dynamic IP. Oczywiście COOKIES jeśli głosują wszyscy.
HighVoltage
Cytat(s_w_ir @ 23.09.2006, 21:48:01 ) *
Jedno IP odpada jak wiadomo bo większość ludzi ma dziś NEO z dynamic IP. Oczywiście COOKIES jeśli głosują wszyscy.

Co za roznica czy zresetuje sobie IP czy usune cookie z folderu? Zadna.
Polaczenie IP z Cookie jest chyba najlepszym rozwiazaniem, ale i tak nie daje 100% gwarancji.
slammer
ja zrobilbym na Twoim miejscu jakies proste logowanie z autologinem i dodawal do bazy danych lub pliku tekstowego odpowiednie informacje.
np.
art ktory juz zostal oceniony dodaje do bazy odpowiedni wpis powiedzmy ze jakis unikalny numer...
Cookies zawsze można usuwac lub je po prostu blokować, wiec uzytkownik bedzie mogl glosowac ile mu sie podoba.
envp
Doradzam, nie uzywac cookies beznadziejne rozwiazanie. Zasada jest taka - nigdy nie ufaj temu co idzie z przeglądarki. Pomysł z dodatkową bazą trzymajaca id artykolow i ide userow jest ok. Ja bym zrobił tak: do każdego usera dodal voted_arts_ids i wymienial po przeciku, potem sprawdzal, czy znajduje sie w bazie juz id artykulu i ewentulanie forwardowal na jkais error - jesli nie dodawal id do 'zalgosowanych' Pozdrawiam
NetJaro
A może autorowi tematu chodziło, że nie chce rejestracji (jak Bash.org.pl)..?
slammer
a może tak... w kazdym razie nie napisał tego smile.gif jak bez logowania to nie mam juz zadnego pomyslu bo zapisywanie do cookies to juz chyba ustalilismy ze raczej nie jest to dobry pomysł smile.gif
s_w_ir
Cytat
Co za roznica czy zresetuje sobie IP czy usune cookie z folderu? Zadna.
Polaczenie IP z Cookie jest chyba najlepszym rozwiazaniem, ale i tak nie daje 100% gwarancji.

Możesz też przeinstalować system, i co? Tak samo stracisz to cookie. Jednak wiesz o tym Ty, ja mnóstwo koderów, ale nie wie o tym 80% userów internetu,a większość osób napewno też nie będzie na złość usuwać tego cookie. Na Twoje pytanie o IP odpowiedziałem już we wcześniejszym poście. WIększość osób ma dynamiczne IP i przy obecnej ilości userów internetu możliwość zdublowanie IP następnego dnia bardzo rośnie. Innymi słowy jednego dnia sobie ktoś zagłosuje a innego ktoś inny nie będzie mógł głosować bo się zdubluje. Era kiedy większość userów miała statyczne IP mineła, więc identyfikacja po IP nadaje się co najwyżej na następną godzine.

COOKIE to odpowiednik sesji, która jednak zostaje nie na serverze a u usera, i przeważnie dłużej przechowuje wartości. Jest to najlepsze rozwiązanie jeśli nie rejestrujemy userów.
Ile osób blokuje COOKIE? Z tego co czytałem ok 1,5%. Teraz pytanie ile osób wie jak zablokować COOKIE i wie po co to robi?
Uważam więc że osoby(większość) które blokują, wiedzą co robią i świadomie rezygnują ze sporej ilości usług opartych na COOKIE.
b0b3k
Jezeli blokują to wyswietlasz stosowny komunikat "aby moc glosowac wymagan jest wlaczanie cookie" a co do samego glosowania - to tylko artykuły wiec przechowywanie w cookie to nic strasznego, pozatym komu by sie chcialo usuwac cookie i sztucznie nabijać wyniki glosowania..
slammer
Cytat(b0b3k @ 24.09.2006, 07:37:23 ) *
pozatym komu by sie chcialo usuwac cookie i sztucznie nabijać wyniki glosowania..


Mi laugh.gif biggrin.gif

hehe tak na poważnie to chyba rzeczywiscie macie racje. W tym wypadku bez autoryzacji cookie to jedyna opcja smile.gif Jednak z tego co wiem w standardzie jest max 20 cookie na jedną stronę więc jakoś będziesz musial sobie poradzić z gromadzeniem większej liczby informacji w 1 cookie. Może funkcją serialize() i unserialize()...
Seraph
Faktycznie chodziło mi głównie o możliwość głosowanie dla wszystkich - sory, że nie zaznaczyłem

główny problem, o który mi chodziło streścił slammer w ostatnim poście - limit cookies, bo nie sztuką jest zrobić do każdego osobne ciasteczko, tylko że przy większych ilościach będą się kasowały.... nie wiem jeszcze jak działają te funkcje serialize(), unserialize(), ale mam nadzieję, że uda mi się to jakoś sprawdzić.
:roll2:
NetJaro
Użyj funkcji serialize, unserialize - ew. Zapisuj jakoś gdzie głosowano, a do zapisu w ciasteczkach hash'uj, a potem odhash'uj by odczytać smile.gif
ciano
Dołączę się do dyskusji z następującym pytaniem ...

Jak zapisywać id użytkowników, którzy głosowali?

a ) w tabeli z artykułami zrobić pole, w którym będzie ciąg id oddzielonych separatorem
b ) stworzyć osobną tabelę z id artykulu i id uzytkownika
Seraph
Ja osobiście gdybym chciał robićdla zarejestrowanych użytkowników, chyba skorzystałbym z osobnej tabeli, wydaje mi się, że to zwiększy czytelność...
b0b3k
Ja korzystam z osobnej tabeli i ajaxa - > nie pobieram od razu wszystkiego z jednej komorki np. glosy w tabeli uzytkownicy w formie 1:2:3:4 (id artykułów) bo to tylko obciaza serwer. Gdy ktos wcisnie np. Głos na tak ajax przesyla zapytanie do pliku z glosowaniem i wstawia rekord do tabeli głosów z id materiału i id uzytkownika, jezeli juz taki rekord istnieje no to wyswietlany jest stosowny komunikat, a np. raz na 2 tyg mozna oprozniac te tabele
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.