![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 333 Pomógł: 16 Dołączył: 13.05.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Kod $ile_jest_glosow = mysql_query("SELECT * from cms_ocena_newsow where id_newsa=$rekord[0] order by id"); $ile_glosow = mysql_num_rows($ile_jest_glosow); while($rekord20 = mysql_fetch_array($ile_jest_glosow)) { $wynik = ($rekord20[2] - $rekord20[3]); } Chcę zbudować skrypt liczący głosy. mam tabelę: id id_newsa plus minus login ip- klikając plusik wstawia się wartość "1" do kolumny plus, klikając minusik wstawia się wartość "1" do kolumny minus. Czy możecie zapodać prosty skrypcik, który obliczy różnicę obu kolumn? Jak widzicie po moim kodzie, nie bardzo mi się to udaje... Dziękuję za pomoc. -------------------- Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
|
|
|
![]() |
-barabarara- |
![]()
Post
#2
|
Goście ![]() |
SELECT plusy-minusy AS roznica FROM tabela
![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 12 Dołączył: 20.01.2008 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jeśli już to ::
Ogólnie jednak ja bym tą tabele opatrzył tylko w jedno pole rodzaju glos, zamiast pol plus oraz minus i w zaleznosci od wyboru umieszczal w niej wartosc 1 lub -1. W ten sposob juz z poziomu zapytania w bazie otrzymywalbys pozadany wynik. Pozdrawiam Inti |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 333 Pomógł: 16 Dołączył: 13.05.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Kod, który prezentuje poniżej liczy ilość wierszy, a tym samym ilość plusów. Chcę, aby każdy, kto oddał głos nie mógł głosować ponownie, jednak wykryłem błąd. Mianowicie jeśli ktoś po mnie zagłosuje, automatycznie mogę oddać ważny głos (ponownie!).
Jak można poprawić ten błąd? Dziękuję za pomoc. Kod $zapytanie_do = mysql_query("SELECT * from cms_ocena_newsow where id_newsa='$id_newsa_ocena' order by id");
$rekord3=mysql_num_rows($zapytanie_do); $ocena = $rekord3; while($zobacz_ip = mysql_fetch_array($zapytanie_do)) { $ip = $zobacz_ip[5]; } if ($REMOTE_ADDR == $ip) { echo "<br><br><center><font style='tahoma' color='E50000' size='3'><img border='0' src='http://usport.pl/img/info.gif'> <b>Już oddałe¶ głos</b></font></center><br>"; echo "<center><font style='tahoma' color='000000'><a href='javascript:window.history.go(-1);'>Powrót</a></center></font></center>"; } -------------------- Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 27 Dołączył: 27.05.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Poprawiony "bug":
Nie dziwne, że masz taki błąd skoro w pętli pobierasz ip i tylko nadpisujesz zmienną kolejnymi ip co w efekcie da Ci zapis ostatniego ip jakie zostanie pobrane z bazy. IP i tak nie wiele Ci da, wystarczy użyć w tym przypadku proxy i mogę dalej głosować, zmienić ip przykładowo neostrada i dalej mogę głosować. Blokada masek raczej odpada więc ip się na niewiele tak naprawdę tu zdaje. Możesz ewentualnie dodać do tego sprawdzanie w cookies czy był oddany głos ale to wcale nie dużo trudniejsze do obejścia (usunąć cookie). Innym rozwiązaniem jest np. zapis id użytkowników, którzy głosowali gdzieś do pliku czy bazy i po tym sprawdzanie (o ile głosować mogą tylko zarejestrowani użytkownicy), co też jest banalnie proste do obejścia po przez założenie nowego konta... i tak można w kółko zawsze da się obejść w jakiś sposób blokadę powtórnego głosowania. Przynajmniej nic nie przychodzi mi do głowy w 100% skutecznego teraz... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 03:14 |