Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sonda - zabezpieczenie cookies i IP
deha21
post 5.05.2010, 15:01:01
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

Ostrzeżenie: (0%)
-----


Zrobiłem skrypt sondy z zabezpieczeniem na IP (zapisywanie w bazie) i cookies. Wgrałem na serwer i zauważyłem że teraz działa tylko na cookies :/
Nie wiem co się stało. Przeanalizowałem kod i chyba wszystko jest ok ale jednak nie działa zabezpieczenie na IP - tzn. wpisuje je do bazy ale potem nie bierze pod uwagę gdy głosujemy ponownie.
Nie wiem czy wklejać kod bo jest trochę skomplikowany i niezbyt czytelny przez to ale mam coś na zasadzie. Ale to coś na zasadzie:
  1. if (głos) {
  2.  
  3. if (jest cookie || jest IP w bazie) { wyswietlaj wyniki sondy }
  4. else { dodaj głos }
  5.  
  6. } if (!glos) {
  7.  
  8. if (jest cookie || jest IP w bazie) { wyswietlaj wyniki }
  9. else { pokaż sondę }
  10. }


Nie wiem co jest przyczyną że IP nie działa. Może wyciąganie IP jest złe? Możliwe. Mam coś takiego:
  1. $resultip=mysql_query("SELECT ip FROM votes WHERE sonda='$ids'"); // pobiera IP z tabeli VOTES gdzie numer sondy jest numerem aktualnym sondy
  2. $rowip=mysql_fetch_array($resultip);
  3.  
  4. if (isset($_COOKIE[$ids]) || $ipp==$rowip['ip']) { // $ipp to zmienna przechowująca IP odwiedzającego
  5. bla bla;
  6. }


Pomocy! winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
varez
post 5.05.2010, 16:09:47
Post #2





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


nie pochwaliles sie jak pobierasz to ip..
Go to the top of the page
+Quote Post
deha21
post 5.05.2010, 19:46:03
Post #3





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

Ostrzeżenie: (0%)
-----


IP pobiera raczej dobrze, przynajmniej moje.
  1. if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ipp = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ipp=$_SERVER["REMOTE_ADDR"]; }


--------------------
Go to the top of the page
+Quote Post
tehaha
post 5.05.2010, 20:19:22
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


widzę, że chcesz pobrać numery IP które brały udział w konkretnej sondzie i w taki sposób sprawdzać czy numer IP już głosował ale Twój kod pobiera tylko jeden wynik z bazy, jeżeli chcesz wszystkie numery pobrać to musisz w pętli pobrać wyniki i zapisać je np. do tablicy i potem sprawdzać funkcja in_array() czy w tablicy jest już taki numer IP, aczkolwiek pobieranie wszystkich numerów IP jest trochę bez sensu, lepiej sprawdzić czy w bazie jest rekord z danym IP dla danej sondy czyli:

  1. $resultip=mysql_query("SELECT ip FROM votes WHERE sonda='$ids' AND ip = '$ipp'"); // pobiera IP z tabeli VOTES gdzie numer sondy jest numerem aktualnym sondy
  2. if(mysql_num_rows($resultip) > 0)
  3. {
  4. // ten numer IP brał udział w tej sondzie
  5. }
Go to the top of the page
+Quote Post
deha21
post 5.05.2010, 21:25:35
Post #5





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

Ostrzeżenie: (0%)
-----


Dzięki tehaha.
Własnie wpadłem na pomysł żeby dopisać AND ip='$ipp' ale miałem problem z późniejszym sprawdzeniem winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 14:21