![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam:)
Mam na stronie wyświetlani jakiś wypowiedzi i jest pole ocena gdzie są możliwości oddania oceny dodatniej i ujemnej... Wszystko jest przechowywane w bazie danych... I teraz jak to zrobić aby użytkownik jak raz zaglosuje nie mógł już głosować?? Dodam że mam otwieraną sesje przy wejściu na stronę, lecz użytkownik anonimowy jest nim nadal tylko potem po logowaniu sesja jest uzbrajana.. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 3 Dołączył: 8.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
a kontrola ip nie wchodzi w gre?
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
jeżeli nie jest to system głosowania do parlamentu, to wystarczy u usera założyć ciasteczko, ze już oddał głos. oczywiście jest to prymitywne i banalne do obejścia, ale w prostych zastosowanich zupełnie wystarczające
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak naprawdę to się nie da - jeśli dajesz głosować gościom, to jest multum sposobów, żeby to obejść, jeśli zmieniłbyś na głosowanie dla zarejestrowanych - zawsze można założyć nowe konto.
Ustawiaj ciacho, a w bazie danych zapisuj adres ip głosującego. Przy głosowaniu sprawdzaj, czy ip się nie duplikuje, a ciacho nie jest ustawione. Oczywiście jest to bardzo zawodne, nie uwzględnia dynamicznych ip, może blokować głosowanie użytkownikom, którzy jeszcze nie głosowali i tak dalej. Ten post edytował Shili 9.07.2008, 09:35:16 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Stwórz dodatkową tabelę z ocenami wystawianymi przez użytkowników z takimi polami jak:
- uzytkownik_id - wypowiedz_id - ocena Zapisuj oceny w tej tabeli, a potem sprawdzaj czy użytkownik o konkretnym id głosował już na daną wiadomość i jeśli tak to nie pozwalaj na powtórne oddanie głosu. [edit] no chyba że nie ma kont użytkowników, wtedy pozostają sposoby podane powyżej ![]() Ten post edytował krowal 9.07.2008, 09:36:29 -------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Myśe właśnie nad ciastkiem ale przyznam się szczerze pierwszy raz pisze w php;) tak to tylko pisałem c++ i c# oraz Asp...
Użytkownicy nie mogą się rejestrować tylko odpowiednia grupa będzie rejestrowana(czyt. obsługa portalu)... Jkabym mógł prosić jakieś wskazówki jak takie ciastko wstawić |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
google ukradli?
![]() setcookie" title="Zobacz w manualu PHP" target="_manual dodatkowo (jeśli zaczynasz, to tym bardziej zwracam uwagę na nieocenioną pomoc jaką jest manual - zacznij sobie przyswajać posługiwanie się nim) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki:) już dawno korzystam z tej stronki:)
A jeszcze jedno pytanie... w tych ciasteczkach jak przechowywać id tych tekstów?? i teraz jedno ciasteczko to jedno id czy moge mu zwiększać ilość danych w ciasteczku?? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie polecam jednego ciastka, jednego id. W ciastku możesz zapisać do bodajże 4kB informacji - to musisz wziąć pod uwagę. Ilość ciastek dla jednej domeny też jest ograniczona.
Tak naprawdę musisz sobie to wszystko skalkulować - ile będzie tekstów do oceniania, ile średnio bajtów przypada na jeden identyfikator itd. Przyjmując, że będziesz miał kilkaset takich tekstów są to 3 bajty na identyfikator. Jakoś trzeba to oddzielić, czyli na przykład przecinkiem, potem robić na ciastku explode. Nie jest to oczywiście szczególnie wydajne, natomiast jest to tylko przykład. Musisz sobie oszacować co najbardziej Ci się opłaci docelowo itd. 3x999 + 1x999 <= 4kB, czyli zmieści się w jednym ciastku. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
no tak ale jak ktos wyczysci ciasteczka z dysku to to i tak bedzie mogl glosowac, a glosowanie na ip tez nie jest do konca rozwiazaniem bo np. w neo ip sie z kazdym polaczeniem zmienia
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Ciągle mówicie że blokowanie IP się da obejść a nie myślicie też o tym że moze uniemożliwić? sieć lokalna itd...?
jeśli masz problem z ilością w ciasku - polecam baze + id, skrypt robi ciasto z jakimś ciągiem(np. sha1(microtime()) ![]() połaczenie sessji i cookie - sesja znika, w bazie nie zniknie, danych u usera też nie trzymasz tylko id... możesz tez inteligentnie ukryć id dając jako nazwe cookie np. phpbb2mysql(domysle cookie phpbb by przemo) -------------------- "Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...] Grins: mów normalnie do mnie a nie po polsku Ja: normalnie to znaczy jak? Grins: No w PHP... inaczej mój parser ledwo kuma:) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 04:00 |